2009-10-02 93 views
3

我綁定一個下拉如何解除綁定事件

("#dropdownlist").change(function(){ 
    //Do stuff 
}); 

上面的代碼會被調用多次。

如何在每次綁定之前解除綁定此事件?

+0

我不知道你想從這個問題來實現的。 你不想綁定事件,所以它只發生一次?或者在腳本中的某個特定位置調用事件後,簡單地解除綁定事件? – hitautodestruct 2012-11-05 10:36:49

回答

7

你可以使用one而不是綁定的:

("#dropdownlist").one('change',function(){}); 
8

可以使用unbind()方法:

$('#dropdownlist').unbind('change'); 
2

使用以下邏輯:

var f = function() { 

} 

$('#xx').bind('change', f); // for bind function f 
$('#xx').unbind('change', f); // for unbind unbind function f 
2

此外jQuery的支持命名空間。

例如,假設您有更改的處理程序執行驗證並更改確實有助於文本懸停的處理程序。

你可以註冊:

$("#foo").bind("change.validation", doValidation()); 

$("#foo").bind("change.helptext", toggleHelptext()); 

,然後你可以取消綁定,然後再重新添加驗證,例如特定的一組

$("#foo").unbind("change.validation"); 
$("#foo").bind("change.validation", doValidation()); 

HTH 亞歷