根据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中。
感谢任何洞察力。
答案 0 :(得分:1)
无论它值得什么,对于下一个遇到此问题的人来说,包含的uservoice
代码似乎已经破坏了本机jQuery调用,因此永远不会调用jQuery.ready()
。< / p>