关于事件对象中的stopImmediatePropagation

关于e.stopPropagation(),大家应该知道这个方法是用来阻止事件冒泡的。

那么e.stopImmediatePropagation()可能比较少见。

stopImmediatePropagation

用来阻止在同一DOM对象上同一事件类型的其它事件函数的执行
并且与事件先后注册的顺序有关

document.addEventListener("click",e=>{
    console.log("click",1);
})

document.addEventListener("click",e=>{
    console.log("click",2);
})

正常就应该是这样,如果你用document.onclick那么我应该不用解释吧。

加上e.stopImmediatePropagation();

document.addEventListener("click",e=>{
    e.stopImmediatePropagation();
    console.log("click",1);
})

document.addEventListener("click",e=>{
    console.log("click",2);
})

但阻止的是在其之后注册事件

document.addEventListener("click",e=>{
    console.log("click",1);
})

document.addEventListener("click",e=>{
    e.stopImmediatePropagation();
    console.log("click",2);
})

这里两个事件都触发了。

并且不同类型之间的事件不相影响

posted @ 2024-05-11 23:04  龙陌  阅读(209)  评论(0)    收藏  举报