如何停止jQuery中的自定义事件冒泡?
例如,我有此代码:
$('.myclass').bind('amodaldestroy', function(){
....does something.....
})
我如何只允许它在冒泡时找到的第一个元素上触发一次?我可以只添加返回false
吗?
$('.myclass').bind('amodaldestroy', function(){
....does something.....
return false;
})
根据jQuery的documentation:
$('myclass').bind('amodaldestroy'), function(event) {
....does something....
event.stopPropagation();
});
event.stopPropagation();
您也可以使用$('.myclass').bind('amodaldestroy', function(e){
e.stopPropagation();
});
,但是两者之间的细微差别在于,返回false也会调用return false
对于IE <9中的支持:
event.preventDefault();
这可能不是很好,但是
event.preventDefault();
[$(".element").click(function(e)
{
var event = e || window.event;
event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);
});
将同时执行return false;
和return false
如果您只想要一个,则可以根据您的选择进行选择
请阅读,这仅来自SO
[stopPropagation
有效地是preventDefault和stopPropogation。
[event.preventDefault...
将阻止默认事件的发生,return false
n将阻止事件的冒泡并返回false将同时执行这两项。
preventDefault