如何停止在jQuery冒泡事件?
如何在jQuery中停止自定义事件冒泡?
例如,我有这样的代码:
$('.myclass').bind('amodaldestroy', function(){ ....does something..... })
我怎样才能让它在冒泡的第一个元素上触发一次呢? 我可以添加返回false
吗?
$('.myclass').bind('amodaldestroy', function(){ ....does something..... return false; })
根据jQuery的文档 :
$('myclass').bind('amodaldestroy'), function(event) { ....does something.... event.stopPropagation(); });
使用event.stopPropagation();
$('.myclass').bind('amodaldestroy', function(e){ e.stopPropagation(); });
你也可以使用return false
但是两者之间有一个微妙的区别,那就是返回false也调用event.preventDefault();
在IE中支持<9:
$(".element").click(function(e) { var event = e || window.event; event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true); });
这可能不是那么好,但是
return false;
return false
将做stopPropagation
和event.preventDefault...
如果你只想要一个,你可以根据自己的select进行select
请阅读这个,这只是从SO而已
return false
是有效的既preventDefault和stopPropogation。
preventDefault
将防止发生默认事件, stopPropogatio
n将防止事件冒泡,返回false将同时做到这一点。