我有一个页面,其中一些部分加载了jQuery。其中许多部分的javascript代码类似于:
console.log( "script X loaded");
$(document).ready( function() {
console.log( "script X executed");
// ... some code ...
});
问题是所有这些函数都已执行,直到我更新到jQuery 1.7.1
现在,至少其中一个功能不会像其他人一样被执行,在控制台我可以读到:
script A loaded
script A executed
script B executed
它结束时没有执行脚本B.我试图测试它擦除脚本B中函数内的所有代码。
您对可能发生的事情有任何疑问吗?
谢谢!
答案 0 :(得分:4)
在我看来,这就像是一种竞争条件,在这种情况下,你以不适当的顺序加载所需的组件,导致你的一些代码永远不会变成就绪 - 因此,永远不会执行。
我可能完全错了,但对我来说通常就是这种情况。
此外,如果侦听器附加到document
,则可能是您已经在某个时刻打开了要写入的文档,并且从未将其关闭。
答案 1 :(得分:2)
我建议你添加
try{ ... }catch(error){console.log("error in method X " + error)}
包装你的功能。这样您就可以知道哪个方法出错了。 我假设抛出了一些停止执行的异常。
我还建议您使用chrome,单击ctrl + shift + j查看控制台,添加“调试器”;在代码中 像这样
try{
console.log("running method X");
....
}catch(error){ debugger; console.log("error in method X : " + error); }
这将使您能够在发生错误时调试代码。