如何阻止jQuery冒泡的事件?

时间:2010-12-23 20:30:50

标签: javascript jquery javascript-events event-bubbling

如何在jQuery中停止自定义事件冒泡?

例如我有这段代码:

$('.myclass').bind('amodaldestroy', function(){
    ....does something.....
})

我怎么只允许在冒泡时找到的第一个元素上触发一次?我可以添加返回false吗?

$('.myclass').bind('amodaldestroy', function(){
     ....does something.....
    return false;
})

5 个答案:

答案 0 :(得分:43)

根据jQuery的documentation

$('myclass').bind('amodaldestroy'), function(event) {
    ....does something....
    event.stopPropagation();
});

答案 1 :(得分:13)

使用event.stopPropagation();

$('.myclass').bind('amodaldestroy', function(e){
    e.stopPropagation();
});

您也可以使用return false但两者之间存在细微差别,因为返回false也会调用event.preventDefault();

答案 2 :(得分:7)

对于IE中的支持< 9:

$(".element").click(function(e)
{
    var event = e || window.event;
    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);
});

答案 3 :(得分:3)

这可能不是那么好但是

return false;

return false会执行stopPropagationevent.preventDefault...

如果您只想根据自己的选择选择一个

请阅读此内容,这仅来自SO

return false实际上是preventDefault和stopPropogation。

preventDefault将阻止发生默认事件,stopPropogatio n将阻止事件冒泡并返回false将同时执行。

答案 4 :(得分:2)