我正在绑定一个下拉列表
("#dropdownlist").change(function(){
//Do stuff
});
以上代码被多次调用。
如何在每次绑定之前取消绑定此事件?
答案 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 亚历