jquery firefox stopPropagation()

我将两个事件处理程序绑定到’keydown’上的输入字段.如果已按下回车键,则第一个事件处理程序需要停止事件的传播,以使其不会触及第二个事件处理程序.我是这样做的:

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

在这一点并不能阻止IE或Firefox中的事件传播.它命中第一个事件处理程序,然后命中第二个事件处理程序.但是,在第二个事件处理程序中,我实际上可以在IE的情况下检查是否(e.cancelBubble).有没有办法检查Firefox相同?

最佳答案
只需删除您的IE测试并使用此:

event.stopImmediatePropagation();

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


jQuery表单验证提交:前台验证一(图文+视频)
jQuery表单验证提交:前台验证二(图文+视频)
jQuery如何实时监听获取input输入框的值
JQuery怎么判断元素是否存在
jQuery如何实现定时重定向
jquery如何获取复选框选中的值
jQuery如何清空form表单数据
jQuery怎么删除元素节点
JQuery怎么循环输出数组元素
jquery怎么实现点击刷新当前页面
怎么用jquery实现文字左右展开收缩效果
jquery怎么删除html属性
如何用jquery实现图片翻转效果
jquery怎么删除样式属性
jquery如何获取当前元素的位置
如何用jquery实现点击展开收缩效果
jquery怎么实现点击隐藏显示效果
jQuery如何获取当前页面url
jQuery怎么获取鼠标的位置坐标
简洁易懂的jQuery:HTML表单与jQuery