【发布时间】:2013-08-29 01:57:17
【问题描述】:
我正在 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 设置的高级选项卡上重置和恢复)$(document).ready 开始按预期工作。所以我知道解决办法,但我想知道根本原因。
虽然我对 IE 的不稳定行为感到失望,但这个案例留下了一个悬而未决的问题: IE 的一项设置改变了 $(document).ready 的行为方式,它导致了我在这篇文章中解释的问题。有人知道是哪个设置导致了这个问题吗?
【问题讨论】:
-
如果是自关闭脚本问题,只要正确关闭脚本即可;这显然是 IE 中的错误,而不是 jQuery...
-
我从来没有遇到过
$(document).ready的问题。你能告诉我们你的代码吗?我认为其他问题是问题。 -
确保 jQuery 脚本在
$(document).ready执行之前完成加载,否则$将未定义并且不会运行 -
我在去年设计了3个大型程序,其中一个运行在SharePoint上,所有跨浏览器兼容IE7-9、Chrome、FF、Safari和Opera,我已经从未也看到过您所指的问题?我们可以看看你的例子吗?
-
另外,请注意,如果您使用的是新版本的 jQuery (1.6+),则不必再编写那么长的旧行,将其替换为
$(function() { /* do jQuery Work */ })
标签: jquery