js冒泡

看一个例子:


js冒泡_第1张图片
实例

1.一个事件起泡对应触发的是上层的同一事件

特殊:如果two设置成双击事件,那么在你单击two的时候就会起泡触发one单击的事件

(双击包含单击)。

2.如果在click事件中,在你要处理的事件之前加上e.preventDefault();

那么就取消了行为(通俗理解:相当于做了个return操作),不执行之后的语句了。

3.e.stopPropagation()只要在click事件中,就不会触发上层click事件

js的写法:

1)停止冒泡的写法

//如果提供了事件对象,则这是一个非IE浏览器

if(e&&e.stopPropagation)

// 因此它支持W3C的stopPropagation()方法

e.stopPropagation();

else

//否则,我们需要使用IE的方式来取消事件冒泡

window.event.cancelBubble=true;

returnfalse;

2)阻止浏览器的默认行为

//如果提供了事件对象,则这是一个非IE浏览器

if(e&&e.preventDefault)

//阻止默认浏览器动作(W3C)

e.preventDefault();

else

jquery的写法:

1)return false:In event handler ,prevents default behavior and event bubbing 。

return false 在事件的处理中,可以阻止默认事件和冒泡事件。

2)event.preventDefault():In event handler ,prevent default event (allows bubbling) 。

event.preventDefault()在事件的处理中,可以阻止默认事件但是允许冒泡事件的发生。

3)event.stopPropagation():In event handler ,prevent bubbling (allows default behavior).

event.stopPropagation()在事件的处理中,可以阻止冒泡但是允许默认事件的发生

prototype的写法:

Event.stop(event)

用法介绍:

事件发生后,浏览器通常首先触发事件发生元素上的事件处理程序,然后是它的父元素,父元素的父元素……依此类推, 直到文档的根元素为止。这被称为 事件冒泡,是事件传播的最常见的方式。当处理好一个事件后, 你可能想要停止事件的传播,不希望它继续冒泡。

当你的程序有机会处理事件时,如果这个事件具有 默认行为,同时浏览器也会处理它。例如,点击导航链接、 将表单提交到服务器、在一个单行文本框中按下回车键等等。如果对这些事件你定义了自己的处理方式, 可能会非常希望阻止相关的默认行为。

你可能感兴趣的:(js冒泡)