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事件。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值