Events 如何解开并重新绑定

Events 如何解开并重新绑定,events,bind,jquery,Events,Bind,Jquery,我有这个点击功能,我解除绑定。但是,我想在单击某个按钮时再次绑定它 $("#archive").click(function(event){ /*do something*/ }); $('#archive2').unbind('click',event); 我用这段代码再次绑定,但它似乎不起作用。任何建议或解决方法?为什么不在事件处理程序中使用布尔值和if语句?您必须保留对函数的引用(而不是传递匿名函数): 不确定在您的情况下什么是事件,但如果它是传递给事件处理程序的事件对

我有这个点击功能,我解除绑定。但是,我想在单击某个按钮时再次绑定它

$("#archive").click(function(event){
        /*do something*/
});

$('#archive2').unbind('click',event);

我用这段代码再次绑定,但它似乎不起作用。任何建议或解决方法?

为什么不在事件处理程序中使用布尔值和
if
语句?

您必须保留对函数的引用(而不是传递匿名函数):


不确定在您的情况下什么是
事件
,但如果它是传递给事件处理程序的
事件
对象,则将其传递给
解除绑定
绑定
没有意义。您需要为函数提供一个处理程序,以便可以绑定/解除绑定。(还允许您绑定/取消绑定同一事件中的特定事件处理程序:

function handler() {
    // do something
}

$("#archive").click(handler); // bind the first time
$("#archive").unbind('click', handler); // unbind
$("#archive").click(handler); // bind again
(从开始使用)

对于所有事件处理程序绑定,您应该使用和:

var handler = function() {
  alert('The quick brown fox jumps over the lazy dog.');
};
$('#foo').bind('click', handler);
$('#foo').unbind('click', handler);
试试这个:

var handler = function() {
  alert('The quick brown fox jumps over the lazy dog.');
};
$('#foo').on('click', handler);
$('#foo').off('click', handler);

最好用编程语言或技术名称来标记问题,并且只在添加一些特定的名称之后tags@tep:不客气!看起来你是新来的-欢迎来到社区;记住标记答案并投票支持任何有用的帖子。
var handler = function() {
  alert('The quick brown fox jumps over the lazy dog.');
};
$('#foo').on('click', handler);
$('#foo').off('click', handler);
var closeHandle = function () {
      alert('close');        
};

function addClick() {       
         $("#btnTest").unbind('click').click(closeHandle);          
}