stopPropagation()方法阻止事件的向上传播?

JS中的事件默认是冒泡方式,逐层往上传播,可以通过stopPropagation()函数停止事件在DOM层次中的传播,通过dojo中的event.stop(evt);效果是相同的。

     有些时候有两个节点绑定了相同的事件,例如:click事件,只是节点的级别可能不同,可以是父子节点,所以可能当你点击子节点的时候,可能在触发子节点的同时会触发父节点。

例如:

给按钮绑定click事件

document.getElementById("mybutton").οnclick=function(event)
 {
   alert('body click');

}

给body节点绑定click事件,可以说body节点是button节点的父节点

document.body.οnclick=function(event)

{
     alert('body click');
}

当点击按钮时会触发这两个节点的事件,所以我们需要阻止事件向上传播事件,一般为冒泡方式传播事件,

每一个事件对象,都有stopPropagation()函数,用于阻止事件的传播,

例如:

阻止事件的传播

document.getElementById("mybutton").οnclick=function(event)
 {
    alert('body click');

 evt.stopPropagation();//阻止了事件的向上传播

}

给body节点绑定click事件,可以说body节点是button节点的父节点

document.body.οnclick=function(event)

{
       alert('body click');
}

这样点击按钮后,不会触发body节点的click事件。

你可能感兴趣的:(javascript)