2009-10-02 70 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 亚历