前段时间开发中,遇到一个父元素和子元素都有事件时,发现会出现事件冒泡现象,虽然知道ev.stopPropagation()和ev.preventDefault()其中一个是阻止事件冒泡和阻止默认行为,却不知ev.preventDefault()和ev.stopPropagation()以及return false之间的详细区别,于是闲了就学了一下. 在此之前,先复习一下事件机制.dom事件通常会有三种情况:捕获阶段:从外向里依次查找元素.目标阶段:从当前事件源本身的操作冒泡阶段:从内到外依次触发…
How to correctly use preventDefault(), stopPropagation(), or return false; on events I’m sure this has been written about many times before and probably has hundreds of answers on StackOverflow. Despite this we still find ourselves going through code…
大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性指定的页.return false 就相当于终止符,return true 就相当于执行符. 在javaScript中return false的作用一般是用来取消默认动作的.比如你单击一个链接除了触发你的 onclick时间(如果你指定的话,执行方法体)以外还要触发一个默认事件就是执行页面的跳转.所以如果你想取消对象的默认动作就可以return false.  …
所谓的事件有两种:监听事件和浏览器对特殊标签元素的默认行为事件.监听事件:在节点上被监听的事件操作,如 select节点的change事件,a节点的click事件.浏览器的默认事件:特定页面元素上带的功能,如a标签的href跳转,表单的提交事件.执行监听事件在先,浏览器默认事件在后,所以可以在监听事件函数中,阻止浏览器的默认行为.区别:preventDefault() 阻止浏览器默认事件 stopPropagation() 阻止事件的冒泡 return false; 阻止后续的所有行为 <!DO…
preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为.既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了.什么元素有默认行为呢?如链接<a>,提交按钮<input type=”submit”>等.当Event对象的cancelable为false时,表示没有默认行为,这时即使有默认行为,调用 preventDefault也是不会起作用的. 我们都知道,链接&…
“return false”之所以被误用的如此厉害,是因为它看起来像是完成了我们交给它的工作,浏览器不会再将我们重定向到href中的链接,表单也不会被继续提交,但这么做到底有什么不对呢? 可能在你刚开始学习关于jQuery事件处理时,看到的第一个例子就是关于如何阻止浏览器执行默认行为,比如下面这段演示click事件的代码 $("a.toggle").click(function () { $("#mydiv").toggle(); return false; //…
preventDefault() e.preventDefault()阻止浏览器默认事件 stopPropagation() e.stopPropagation()阻止冒泡 return false 当你每次调用”return false“的时候,它实际上做了3件事情: •event.preventDefault(); •event.stopPropagation(); •停止回调函数执行并立即返回.…
jQuery提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function (event) { event.stopPropagation(); }); 方式一:return false; $("#div1").mousedown(function (event) { return false; }); 这两种方式是有区别的. return false 不仅阻止了事件往上冒泡,而且…
jquery中的return false既阻止默认事件,又阻止冒泡: 在原生的js中,return false只有一个功能,那就是阻止默认事件. <!DOCTYPE html> <html> <head> <script type="text/javascript" src="http://cdn.bootcss.com/jquery/3.1.1/jquery.js"></script> <style…
e.preventDefault(); //阻止事件的默认行为,比如a标签的转向,但不阻止事件的冒泡传播e.stopPropagation() //阻止事件的冒泡传播,但不阻止其默认行为returne false; //阻止两者…