用jquery绑定一个按钮click事件后,第一次点击后,一切正常,第二次点击,竟然执行两次,以后累加越来越多。
后来查看文档发现 jquery click 不是替换原有的function ,而是接着添加,所以才会执行次数越来越多。 所以,可以在绑定click函数之前,先解绑或者说是移出以前绑定的click,然后再添加绑定。
解绑定方法 $("...").unbind('click');
$("#id").unbind('click').click(function(){} $("#id").unbind('click').on("click",function(){})
自 jQuery 版本 1.7 起,on() 和 off() 方法是在元素上添加和移除事件处理程序的首选方法。
所以也可以写成:
$("#id").off("click").on("click",function(){});
在JQM中,如果要对一个按钮添加事件,最好写在pagebeforecreate或pagecreate中,而不要写在"pagebeforeshow"或"pageshow"中。
原因:如果把事件的绑定写在"pageshow"中,因为"pageshow"每次页面显示的时候都会触发,所以这样当一个页面多次显示的时候就会造成一个事件绑定多次的情况。