gpt4 book ai didi

jquery firefox stopPropagation()

转载 作者:行者123 更新时间:2023-12-03 22:57:35 24 4
gpt4 key购买 nike

我将两个事件处理程序绑定(bind)到“keydown”上的输入字段。如果已按下 Enter 键,则第一个事件处理程序需要停止事件的传播,以便它不会影响第二个事件处理程序。我这样做是这样的:

if (jQuery.browser.msie) {
event.cancelBubble = true;
} else {
event.stopPropagation();
}

现在,仅此一项并不能阻止 IE 或 Firefox 中的事件传播。它命中第一个事件处理程序,然后也命中第二个事件处理程序。然而,在第二个事件处理程序中,我实际上可以在 IE 中检查 if (e.cancelBubble) 。有没有办法用 Firefox 进行同样的检查?

最佳答案

只需删除 IE 测试并使用此:

event.stopImmediatePropagation();

这将阻止其他事件在两个浏览器中触发。

event.stopPropagation() 将阻止事件冒泡,但不会阻止同一对象的其他事件处理程序触发。

要回答您的其他问题,如果您刚刚使用了 event.stopPropagation() 您可以检查 event.isPropagationStopped()在第二个处理程序中。

建议:作为一般规则,jQuery 完全抽象所有浏览器行为,以提供单一的功能界面。如果您发现自己在运行 jQuery 函数之前运行 if(jQuery.browser.msie),那么可能有一种更好的跨浏览器运行方法。并且,当您确实需要测试时,您应该使用 jQuery.support测试功能而不是特定浏览器嗅探。

关于jquery firefox stopPropagation(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2029654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com