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节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。

你可能感兴趣的:(js)