我使用以下代码禁用锚标记的click事件:
//disable Click event for links except navigation
$("a:not(#navigation a)").live('click', function(e) {
e.preventDefault;
return false;
});
我需要重新启用或删除上面单击另一个按钮时设置的实现。
如何在jquery中执行此操作?
答案 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);