我的这段代码可以在 Safari 和 Chrome 上运行,但不能在 Firefox 中运行。 Firefox 是否有 StopPropagation() 问题?
$(function() {
// Setup drop down menu
$('.dropdown-toggle').dropdown();
// Fix input element click problem
$('.login-menu form').click(function(e) {
alert(e.isPropagationStopped());
e.stopPropagation();
alert(e.isPropagationStopped());
});
});
我不知道你的 HTML 看起来如何,但是stopPropagation
在 FireFox 中工作正常。
我认为您的期望可能不正确。
根据文档停止传播() http://api.jquery.com/event.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");
});
});
DEMO http://jsfiddle.net/FranWahl/KUTxS/- 在 FF 中工作 - 不会冒泡事件
注释掉该行e.stopPropagation();
在演示中,正如预期的那样,该事件会冒泡,显示来自父级的警报。
您的预期行为是什么?
您尚未指定您期望发生什么。
例如,如果您希望触发事件的默认操作,则可以使用防止默认() http://api.jquery.com/event.preventDefault/
event.preventDefault()
如果调用该方法,则不会触发事件的默认操作。
如果您想覆盖两者,请防止默认操作并防止事件冒泡,您可以同时调用两者或简单地使用return false
在你的方法的最后。
如果您能详细说明您想要实现的目标,我们可以更具体地建议适合您的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)