今天调试一段十几行的代码,也让我是一顿咒骂...就说说是怎么回事哈哈。
是这样的,这个页面foreach了一个个的div块,每个div里有个a标签,这个按钮绑定了个点击事件。事件走了个ajax,根据返回值判断是否删除掉它。
原来童鞋的代码并不是删除掉一个dom,而是reload()了一下...我看到这样的代码总是想换一种方式,既然走了ajax,那直接删除dom岂不是更好,刷新下还要再走服务器...
可当我测试效果的时候,发现页面总是刷新一次。。我就纳闷了,特么明显删除的dom,怎么楞是还走原来的方法...我先整个页面找还有什么地方有引入js的地方,是不是我给忽视了。。用chrome看下Network,就这么几个css文件和一个jq文件了,没其他干扰了。。这又开始打开Sources进行js调式,打了几个断点。。发现一个让我很诧异的事,就是每次代码还没执行到ajax回调函数的时候,就已经发生页面刷新了。。妈蛋不科学啊。。来来回回调试了n次。。后来我摆脱这几行js了,回头瞅一下dom元素,发现a标签的href属性是空格。。我擦,我顿时感觉,是不是空格引起的。。我就给了个井号,再试试的时候,果断好用了~这尼玛才发现,href是空格的时候,点击的时候会刷新页面。。而给这个a标签绑定事件,和href都会执行。。这才导致这次坑爹的debug...还得赖前端童鞋的一个偷懒,你说你要是加个#符号或者javascript:void(0)不就没这回事了哈哈~