一、背景
用jquery绑定按钮,莫名其妙偶发不生效,why?带着这个问题开始debug:
二、过程:
先打开Chrome下的调试工具,发现不能加断点,会跳到一个vm+数字
通过source发现项目下的js文件夹都不见了:
a、找不到source怎么办? 换个方式查看一下:
b、点击pretty print ,出来一个formatted文件,这个文件可以加断点调试:
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出来了:
之前程序里的bug:看看jquery绑定的事件,恢复OK!
我又采用jquery延迟加载试了一下,也恢复OK!
what happen? 偶发消失,到底问题在哪儿?
此刻,我决定暂时搁浅这个问题,接着干活。
(ps:对问题的惊讶,对jquery的质疑,皆源自不够明白。)