如何取消绑定并再次绑定

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

我有这个我解开的点击function。 但是,当我点击某个按钮时,我想再绑定它。

 $("#archive").bind("click",event); 

即时通讯使用此代码再次绑定,但它似乎不起作用。 任何建议或解决方法?

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

 function handler() { // do something } $("#archive").click(handler); // bind the first time $("#archive").unbind('click', handler); // unbind $("#archive").click(handler); // bind again 

不确定你的情况是什么event ,但如果它是传递给事件处理程序的event对象,那么将它传递给unbindbind是没有意义的。

从jQuery 1.7开始,您应该使用on和off来处理所有事件处理程序:

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

为什么在事件处理程序中没有布尔值和if语句?

您需要为函数提供一个处理程序,以便您可以绑定/取消绑定它。 (还允许您在同一事件中绑定/取消绑定特定事件处理程序:

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

(使用自http://api.jquery.com/unbind/ )

试试这个:

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