为使用jquery禁用的锚启用click事件

时间:2009-12-12 05:46:25

标签: jquery

我使用以下代码禁用锚标记的click事件:

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

我需要重新启用或删除上面单击另一个按钮时设置的实现。

如何在jquery中执行此操作?

3 个答案:

答案 0 :(得分: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;
    }
});

答案 1 :(得分:2)

要删除与live关联的事件处理程序,您可以使用die

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

答案 2 :(得分:0)

根据jquery文档,你可以用die来杀死它。您应该将实时事件处理更改为命名函数而不是匿名函数:

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

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

然后你应该可以通过以下方式撤消它:

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