当前位置: 编程技术>jquery
分享:jquery事件重复绑定的解决办法
来源: 互联网 发布时间:2014-09-03
本文导语: 说明: javascript的事件,跟C#的事件类似,事件的绑定是叠加(+=)而不是覆盖。 例如: 代码示例: varEat=function(){ alert("我要吃饭");} varPayMoney=function(){ alert("先付钱");} jQuery(document).ready(function(){ $("#testButton").click(Eat); // www....
说明:
javascript的事件,跟C#的事件类似,事件的绑定是叠加(+=)而不是覆盖。
例如:
代码示例:
varEat=function(){
alert("我要吃饭");}
varPayMoney=function(){
alert("先付钱");}
jQuery(document).ready(function(){
$("#testButton").click(Eat); // www.
$("#testButton").bind("click",PayMoney);});
alert("我要吃饭");}
varPayMoney=function(){
alert("先付钱");}
jQuery(document).ready(function(){
$("#testButton").click(Eat); // www.
$("#testButton").bind("click",PayMoney);});
先弹出:“我要吃饭”紧接着会弹出“先付钱”,说明它的绑定是通过onclick+=fn进行的。
要想多次绑定事件,需要把之前的绑定统统解除。
1,$.fn.live重复绑定
解决:
使用die()方法,在live()方法绑定前,将此元素上的前面被绑定的事件统统解除,然后再通过live()方法绑定新的事件。
代码示例:
//先通过die()方法解除,再通过live()绑定
$(“#selectAll”).die().live(“click”,function(){
//事件运行代码
});
$(“#selectAll”).die().live(“click”,function(){
//事件运行代码
});
2,click等事件
解决:
使用unbind("click")方法,先解除绑定的事件,再绑定新事件。即在给对象绑定事件之前,先移除该对象上的原有事件。
代码示例:
$("#test2").unbind('click').click(function(){
alert("click解除绑定执行"+k+++"次");
});
alert("click解除绑定执行"+k+++"次");
});