javascript – 简单的jQuery click事件绑定在IE8中不起作用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 简单的jQuery click事件绑定在IE8中不起作用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1871字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 简单的jQuery click事件绑定在IE8中不起作用](/upload/InfoBanner/zyjiaocheng/723/1b31220b83534edb8b245e3c4c1b8e28.jpg)
这似乎适用于几乎所有浏览器,除了IE8(可能还有IE7,但我还没有尝试过),我不知道为什么.
$('body')
.on('click', '.toggle', function(e){
$(this).toggleClass('active');
e.preventDefault();
e.stopPropagation();
});
我注意到当我点击链接分类切换时,尽管有e.preventDefault(),浏览器仍会进入页面顶部.在调查问题时,我已经看到了返回false或设置event.returnValue = false的解决方案.我已经尝试了这两种方法,首先测试e.preventDefault(),然后在不满足条件的情况下执行替代方案.
设置返回值:
$('body')
.on('click', '.toggle', function(e){
if (e.preventDefault()) {
e.preventDefault();
} else {
e.returnValue = false;
}
$(this).toggleClass('active');
});
我也通过在全局事件对象上设置returnValue而不是像一个帖子中建议的那样传递给绑定函数来尝试那个.
我的尝试返回虚假:
$('body')
.on('click', '.toggle', function(e){
if (e.preventDefault()) {
e.preventDefault();
}
$(this).toggleClass('active');
return false;
});
尽管有这些不同的尝试,但IE8正在采取链接的默认操作,而不是切换类.我在这做错了什么?我正在使用jQuery 1.10.2.
更新:找到问题的根源.谢谢大家的帮助.我有条件地为非IE包含了一些脚本元素,这个脚本就是其中之一.回归虚假现在正在为我做伎俩.非常感谢让我朝着正确的方向前进!
解决方法:
你的JS除了这里之外还有一个错误 – 它停止了执行,因此你的事件处理程序永远不会受到限制.
打开开发工具(F12)并刷新页面,您将看到脚本错误.这就是导致问题的原因.
另外,请记住
e.preventDefault();
e.stopPropagation();
是相同的
return false;
stopPropagation()和一个绑定到body元素的事件处理程序也有点奇怪,虽然我猜它会阻止事件冒泡到文档……
编辑#2
有三件事情中的一件发生 – 1)你的代码中有一个错误,其他地方暂停执行并且处理程序没有被绑定,2)你的代码里面的事件处理程序中有一个错误(不是你发布的内容)或者3)你在IE8中特别是unbind这个事件处理程序(或者body元素上的所有事件处理程序)(不太可能).
开始添加一些console.log以确定上述哪一个导致您的问题.
要非常清楚,您的事件处理程序应如下所示:
$('body').on('click','.toggle',function(e) {
e.preventDefault();
$(this).toggleClass('active');
});
内容总结
以上是互联网集市为您收集整理的javascript – 简单的jQuery click事件绑定在IE8中不起作用全部内容,希望文章能够帮你解决javascript – 简单的jQuery click事件绑定在IE8中不起作用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。