我有一个关于 jQuery 的 event.stopPropagation()
的问题。 event.stopPropagation()
是否会阻止该目标元素(不一定是相同的目标,而是相同的父级)上该事件的所有回调函数冒泡到父级或仅声明它的父级?为了详细说明,假设我有这个:
$('#someId').on('mousedown touchstart MSPointerDown', function(e){
e.preventDefault();
e.stopPropagation();
$(e.target).toggleClass('blue');
});
$('#someId').on('mousedown touchstart MSPointerDown', function(e){
$(e.target).toggleClass('blue');
});
或
$('#someId').children()[0].on('mousedown touchstart MSPointerDown', function(e){
e.preventDefault();
e.stopPropagation();
$(e.target).toggleClass('blue');
});
$('#someId').children()[1].on('mousedown touchstart MSPointerDown', function(e){
$(e.target).toggleClass('blue');
});
或者我是否需要在两者中都有 e.stopPropagation()
以防止回调表单冒泡?
最佳答案
在你的第二个例子中,这两个事件根本不相关,所以你必须这样对待它们;它们都需要被阻止。
stopPropagation
将阻止事件在 dom 上传播,但不会阻止绑定(bind)到同一元素和事件的其他事件处理程序。为此,您需要 stopImmediatePropagation
。
关于javascript - jQuery event.stopPropagation() 是否停止该事件的所有回调,或者仅停止其声明的回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25289688/