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

一、定义

       不再派发事件。

       终止事件在传播过程的捕捉、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。

二、语法

       event.stopPropagation();

三、js中

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

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

      例子:

      1.给子节点绑定点击事件


$("#myButton").click(function(ev){
    alert("点击子节点");
})

       2.给body绑定点击事件


$("body").click(function(evt){
    alert("父节点");
})

当点击按钮时会触发这两个节点的事件,所以需要阻止事件向上传播事件,一般为冒泡方式传播事件,每一个事件对象,都有stopPropagation()函数,用于阻止事件的传播。

  例子:

1.给子节点绑定点击事件并阻止事件的传播


$("#myButton").click(function(evt){
    alert("点击子节点");
    evt.stopPropagation(); //阻止事件的向上传播
})

2.给body绑定点击事件


$("body").click(function(evt){
    alert("父节点");
})

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

四、说明

      该方法将停止事件的传播,阻止它被分派到其他Document节点。在事件传播的任何阶段都可以调用它。虽然该方法不能阻止同一个Document节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值