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").d​​ie("change").live("change",changed);

Chinese, Traditional

Tags:

發表新回應