一、背景

用jquery绑定按钮,莫名其妙偶发不生效,why?带着这个问题开始debug:

二、过程:

先打开Chrome下的调试工具,发现不能加断点,会跳到一个vm+数字 

通过source发现项目下的js文件夹都不见了:

chrome浏览器调试器出现debugger:\\VM引发的问题

a、找不到source怎么办? 换个方式查看一下:

chrome浏览器调试器出现debugger:\\VM引发的问题

b、点击pretty print ,出来一个formatted文件,这个文件可以加断点调试:

chrome浏览器调试器出现debugger:\\VM引发的问题

c、F11 、 Shift + F11发现:

程序很多次走进jquery文件。也许问题在这,就此打住。

d、回到问题的源头,为什么js文件会看不到?

原来在代码中,我为了延时加载,使用了jquery的getScript方法

<script type="text/javascript">
setTimeout(function(){
    $.getScript('../js/webtool.js',function(){
        console.log("webtool.js加载ok");
    });
},100);
</script>

换成:

<script type="text/javascript" src="../js/webtool.js"></script>

js文件的source出来了:

chrome浏览器调试器出现debugger:\\VM引发的问题

之前程序里的bug:看看jquery绑定的事件,恢复OK!

我又采用jquery延迟加载试了一下,也恢复OK!

what happen? 偶发消失,到底问题在哪儿?

此刻,我决定暂时搁浅这个问题,接着干活。

(ps:对问题的惊讶,对jquery的质疑,皆源自不够明白。)

相关文章: