jQuery 1.9.1 .ready()没有在Chrome中触发

时间:2013-02-14 01:59:37

标签: jquery google-chrome requirejs

根据the docs

  

虽然JavaScript在呈现页面时提供了用于执行代码的加载事件,但在完全接收到所有资产(如图像)之前,不会触发此事件。

我使用的代码$(handler)没有按预期工作,没有明显的理由。这是我在控制台中运行的一些代码:

>>> document.readyState
"complete"
>>> $(function () { console.log("A") })
[    #document    ]
>>> jQuery(function () { console.log("B") })
[    #document    ]

我想补充一点,在此处任何其他地方写的任何handler中都没有$().ready

但是,请注意以下后续通话:

>>> jQuery.ready()
A
B

与此同时,其他任何处理人员也将被召集。

现成的处理程序现在可以按预期工作。即。

>>> $(function () { console.log("D"); }
D

我只是好奇为什么jQuery可能不会在这种情况下工作,如果有人遇到类似的东西,以及如何找到可能干扰的东西。

在我使用的Chrome开发者工具中,似乎没有任何资源未加载。

无论它值多少,代码都使用RequireJS来异步加载脚本,包括jQuery,尽管所有处理程序都是在加载jQuery后明确定义的(即包含在define(['jquery'], ...)require(['jquery'], ...)等效项中

修改

我注意到问题出现在谷歌浏览器中,但不是Firefox。我错误地认为这个问题也出现在Firefox中。

感谢任何洞察力。

1 个答案:

答案 0 :(得分:1)

无论它值得什么,对于下一个遇到此问题的人来说,包含的uservoice代码似乎已经破坏了本机jQuery调用,因此永远不会调用jQuery.ready()。< / p>