首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery: event.stopImmediatePropagation() vs返回false

jquery: event.stopImmediatePropagation() vs返回false
EN

Stack Overflow用户
提问于 2011-03-15 02:40:47
回答 2查看 19.2K关注 0票数 60

在事件处理程序中调用event.stopImmediatePropagation()return false有什么区别吗?

EN

回答 2

Stack Overflow用户

发布于 2015-07-01 14:14:33

以下是return falsepreventDefaultstopPropagationstopImmediatePropagation的完整演示

var kid = document.getElementsByTagName('button')[0];
var dad = document.getElementsByTagName('div')[0];

kid.addEventListener('click', function(e) {
    console.log('kid here');
    e.stopImmediatePropagation();
});

kid.addEventListener('click', function(e) {
    console.log('neighbour kid here');
});

dad.addEventListener('click', function(e) {
   console.log('dad here');
});

dad.addEventListener('click', function(e) {
   console.log('neighbour dad here');
});
<div>
    <button>press</button>
</div>

(也可在JSFiddle上使用。)

manwal’s answer中的表不完全正确。

                            stop   |    prevent     |       prevent
                          bubbling | default action |    event handlers
                                   |                |  Same Element  |  Parent Element

return false                 Yes           Yes               No           No
preventDefault               No            Yes               No           No
stopPropagation              Yes           No                No           Yes
stopImmediatePropagation     Yes           No                Yes          **Yes**
票数 1
EN

Stack Overflow用户

发布于 2011-03-15 02:46:22

是。event.stopImmediatePropagation()不允许调用该事件的任何其他处理程序,无论它们被绑定到哪里。Return false仅阻止绑定到其他元素(即与处理stopImmediatePropagation()调用的事件处理程序不同的元素)的处理程序接收事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5302903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档