如何取消绑定事件

时间:2009-10-02 10:32:59

标签: javascript jquery

我正在绑定一个下拉列表

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

以上代码被多次调用。

如何在每次绑定之前取消绑定此事件?

4 个答案:

答案 0 :(得分:8)

您可以使用unbind()方法:

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

答案 1 :(得分:7)

您可以使用one代替bind:

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

答案 2 :(得分:2)

使用以下逻辑:

var f = function () {

}

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

答案 3 :(得分:2)

此外,jQuery支持名称空间。

例如,假设您有更改处理程序,它们会执行验证并更改帮助文本悬停的处理程序。

您可以注册:

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

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

然后您可以在重新添加验证之前解除绑定特定集,例如

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

HTH 亚历