我不知道您的 HTML 看起来如何,但stopPropagation
在 FireFox 中可以正常工作。
我认为您的期望可能不正确。
根据stopPropagation()的文档
event.stopPropagation()
防止事件在 DOM 树中冒泡,防止任何父处理程序收到事件通知。
例如,假设 HTML 是这样的:
<div id="parent">
<div class="login-menu">click anywhere</div>
</div>
此代码工作正常,点击事件没有冒泡:
$(function() {
// Fix input element click problem
$('.login-menu').click(function(e) {
alert(e.isPropagationStopped());
e.stopPropagation();
alert(e.isPropagationStopped());
});
$("#parent").click(function(e){
alert("parent received click");
});
});
演示- 在 FF 中工作 - 不会冒泡事件
注释掉e.stopPropagation();
DEMO 中的行,正如预期的那样,事件会冒泡,显示来自父级的警报。
您的预期行为是什么?
你没有具体说明你期望发生什么。
例如,如果您希望触发事件的默认操作 no,您可以使用preventDefault()
event.preventDefault()
如果调用该方法,则不会触发事件的默认动作。
如果您想同时涵盖两者,请防止默认操作并防止事件冒泡,您可以同时调用两者或仅return false
在方法结束时使用。
如果您可以详细说明您想要实现的目标,我们可以更具体地建议适合您的解决方案。