删除jquery中的事件

删除jquery中的事件,jquery,Jquery,我在jquery中有一些代码,如下所示: $("#filterZaal").attr("disabled", "disabled"); $("#filterGenre").attr("disabled", "disabled"); $("#filterZaal").live("change", interceptZaalFilter); $("#filterDag").live("change", interceptDagFilter); $("#filterGenre").live("chan

我在jquery中有一些代码,如下所示:

$("#filterZaal").attr("disabled", "disabled");
$("#filterGenre").attr("disabled", "disabled");
$("#filterZaal").live("change", interceptZaalFilter);
$("#filterDag").live("change", interceptDagFilter);
$("#filterGenre").live("change", interceptGenreFilter);
现在,我添加了一个按钮,当我按下这个按钮时,我希望上面所有的代码不再计算,所以当我按下按钮时,这些事件将不再被调用,但当我再次按下它时,它应该再次被启用

在jquery中如何执行此操作?

您需要使用:


与每次使用
die()
添加/删除事件不同,我只创建一个切换标志:

var Toggle = false;

$("#filterZaal").live("change", function(){ 
  if(Toggle){ interceptZaalFilter(); }   // alterantively, add this check
  Toggle = !Toggle;                      // to the func you call
});
// and so on

这似乎可以更好地捕获您想要的内容,而且几乎肯定会更有效。

让事件处理程序检查是否
$(''theButton')。hasClass('disabled')
,如果是这样,则执行
$('theButton')。removeClass('disabled')
,并返回false;否则正常进行


然后,当你添加按钮时,确保它有一个“禁用”类

我只想留下相同的答案。这将比不断添加/删除处理程序更有效+1.
var Toggle = false;

$("#filterZaal").live("change", function(){ 
  if(Toggle){ interceptZaalFilter(); }   // alterantively, add this check
  Toggle = !Toggle;                      // to the func you call
});
// and so on