今天女票说她的页面button 会 弹两次,又是一个神奇的问题
<button type="button" id="btn_save" class="edit-btn-commit " >保存</button>
$(function () {
$(".edit-btn-commit").click(function(){
alert("asdasd");
});
})
以上的代码,很正常吧,就是在初始化的时候为button绑定了click事件,点击弹出了asdasd。
但是发现了会弹出多次asdasd
这就奇了怪了 ,然后就发现这篇博文
发现加了 unbind 确实好了,解决方案如下:
$(function () {
$(".edit-btn-commit").unbind('click').click(function(){
alert("asdasd");
});
})
但是想着,这样解决并不优雅啊
感觉哪里有点不对
想一想,这个unbind解决的就是之前绑定了click方法,把它解绑
所以是不是有多个地方对这个按钮进行了绑定啊
先改button的ID,发现还是不行,绑定的还是同一个方法。
后面看到是在$(function(){}) 里面进行了初始化
想着是不是因为这个js被引用了多次啊
果然发现这个页面 因为是多个子页面组成的
有两个页面a.vm、b.vm重复引用了它
最后删除其中的一个页面 引用 script 就好了。