版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chaoyue1861/article/details/83926390
一、定义
不再派发事件。
终止事件在传播过程的捕捉、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。
二、语法
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节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。