JQuery绑定的事件被多次触发的时候

对于如下代码:

var clicked = function(){
alert('clicked')
}
$(".click").live("click",clicked);

这个"clicked"函数在某种情况下会被触发多次!
具体是什么情况,还没研究清楚.但是有一个解决方法是在绑定事件之前先情况之前的绑定即可,比如:

$(".click").die("click").live("click",clicked);

或者

$(".click").unbind("click").bind("click",clicked);

这两行代码都验证过,工作正常. 唯一要注意的是, 对于使用bind绑定的事件, 去除绑定的函数是unbind, 而用live绑定的则需要用die这个函数.

对于其他的事件(比如onchange),原理也一样了,一样保证在绑定之前,先销毁即可:

var changed= function(){
alert('changed')
}
$(".select").die("change").live("change",changed);

Chinese, Simplified(简体中文)

Tags:

添加新评论