2009-12-12 59 views
0

我使用下面的代碼來禁用錨標籤的Click事件禁用錨單擊事件:使這是使用jQuery

//disable Click event for links except navigation 
$("a:not(#navigation a)").live('click', function(e) { 
    e.preventDefault; 
    return false; 
}); 

我需要重新啓用或刪除其如上設置上點擊執行另一個按鈕。

如何在jQuery中做到這一點?

回答

2

卸下帶live連接的事件處理程序,您可以使用die

$("a:not(#navigation a)").die('click'); 
2

要解除綁定.live事件,你可以使用.die,但我認爲更好的辦法是以下幾點:

$("#buttonToTriggerChange").click(function(e){ 
    // Toggle between adding and removing the class "disable-links" from 
    // the <body> element 
    $(document.body).toggleClass('disable-links'); 
}); 

$("a:not(#navigation a)").live('click', function(e) { 
    // Only block the links if <body> has the class "disabled-links" 
    if($(document.body).hasClass('disabled-links')){ 
     e.preventDefault(); 
     return false; 
    } 
}); 
0

根據jquery文檔,你可以用死來殺死它。您應該將直播事件處理變爲一個名爲函數,而不是一個匿名函數:

function live_anchors(e){ 
    e.preventDefault; 
    return false; 
} 

$("a:not(#navigation a)").live('click', live_anchors); 

那麼你應該能夠撤消與:

$("a:not(#navigation a)").die('click', live_anchors); 
+0

函數引用參數是可選的,如果它被省略,所有綁定的處理程序將被刪除。 – CMS 2009-12-12 06:01:00