对于如下代码:
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);
添加新评论