2011-04-29 56 views
2
$("#archive").click(function(event){ 
     /*do something*/ 
}); 

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

我有這個點擊功能,我解除綁定。不過,當我點擊某個按鈕時,我想再次綁定它。如何解除綁定並再次綁定

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

即時通訊使用此代碼再次綁定,但它似乎不工作。任何建議或解決方法?

+0

使用編程語言或技術名稱標記問題比較好,只有在添加一些特定標記之後 – 2011-04-29 13:19:33

+1

是'#archive2'這是一個錯字 – naiquevin 2011-04-29 13:19:53

回答

0

爲什麼在事件處理程序中沒有布爾值和if語句?

6

你必須保持對函數的引用(而不是傳遞的匿名函數):

function handler() { 
    // do something 
} 

$("#archive").click(handler); // bind the first time 
$("#archive").unbind('click', handler); // unbind 
$("#archive").click(handler); // bind again 

不知道什麼是你的情況event,但如果它是傳遞給事件處理程序event對象那麼將它傳遞給unbindbind是沒有意義的。

0

您需要爲該函數提供一個處理程序,以便您可以綁定/取消綁定。 (也可以讓你在同一事件中綁定/解除綁定特定的事件處理程序:

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/使用)

+0

謝謝!完美地工作! – tep 2011-04-29 13:52:06

+0

@tep:不客氣!看起來你是新來的 - 歡迎來到社區;請記住標記答案並投票出任何有用的帖子。 – KTF 2011-04-29 13:53:47

3

由於jQuery 1.7你應該使用onoff你所有的事件處理程序綁定:

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