如何取消绑定并再次绑定
$("#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
对象,那么将它传递给unbind
和bind
是没有意义的。
从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); }