我在IE9中测试我的脚本。我注意到$(document).ready并不总是被调用。这意味着$(document).ready引用的函数的8次中有1次没有被调用。
只要我将$(document).ready调用移到文档末尾,它就能完美运行。只有当我将$(document).ready调用移动到该部分时才会出现问题。
我阅读了在IE6中确认此问题的博文: http://webbugtrack.blogspot.ca/2007/08/bug-153-self-closing-script-tag-issues.html
考虑到JQuery的声誉,我对此问题感到惊讶。这是JQuery的已知问题/错误和解决方法吗?或者我错过了什么?
谢谢,
更新:
我只是想更新一下这个问题:
该脚本在其他浏览器(Chrome和FF)上工作正常,只有我的开发机器的IE存在问题。一旦我重置IE(在IS设置的高级选项卡上重置和恢复)$(文档).ready开始按预期工作。所以我知道解决方案,但我想知道根本原因。
虽然我对IE的不稳定行为感到失望,但这个案例仍有一个悬而未决的问题: IE的一个设置改变了$(document).ready行为的方式,它引起了我在这篇文章中解释的问题。有人知道哪个设置可以解决这个问题吗?
答案 0 :(得分:0)
听起来你可能正在使用jQuery 1.8.0。
jQuery 1.8.0引入了一个错误,导致就绪方法在IE9中过早发生。
该错误已在1.8.1中修复,并仍在1.8.2中修复。如果您当前正在使用1.8.0,则升级到这两个版本中的任何一个都应该可以解决该问题。
1.8.1 http://blog.jquery.com/2012/08/30/jquery-1-8-1-released/
的发行说明中提到了该错误答案 1 :(得分:0)
我已经能够重现这个问题。这个问题是零星的。我正在使用数据表和jquery版本jquery-1.10.2。我已经确认准备好的事件没有被解雇。 要重现,IE页面会通过链接打开目标窗口名称 例如 转到第2页
单击该链接将打开一个新选项卡,其中包含带有数据表的页面。我将这个新页面称为#2,将其称为第1页。我不关闭第2页。我回到第1页并再次点击链接。如果我在选项卡之间切换(第1页和第2页),我可以看到每4次尝试中有1次,第2页没有使用数据表(只是表格)呈现。此外,浏览器窗口的左下角核心显示黄色感叹号。