如何在jQuery中停止自定义事件冒泡?
例如我有这段代码:
$('.myclass').bind('amodaldestroy', function(){
....does something.....
})
我怎么只允许在冒泡时找到的第一个元素上触发一次?我可以添加返回false
吗?
$('.myclass').bind('amodaldestroy', function(){
....does something.....
return false;
})
答案 0 :(得分:43)
根据jQuery的documentation:
$('myclass').bind('amodaldestroy'), function(event) {
....does something....
event.stopPropagation();
});
答案 1 :(得分:13)
$('.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
会执行stopPropagation
和event.preventDefault...
如果您只想根据自己的选择选择一个
请阅读此内容,这仅来自SO
return false
实际上是preventDefault和stopPropogation。
preventDefault
将阻止发生默认事件,stopPropogatio
n将阻止事件冒泡并返回false将同时执行。
答案 4 :(得分:2)