在jquery中禁用绑定的单击事件

时间:2013-12-02 06:32:03

标签: javascript jquery events

我尝试在jquery中禁用绑定的单击事件,但我发现只能解除绑定或关闭事件。如果我做unbind()我无法取回那些绑定的功能。

例如:我有一个带有click事件的三个​​div绑定的各种函数。在某些情况下,我不想要特定的div点击事件。所以我尝试禁用该事件只能尝试unbind()或off()事件。如果我从div中取消绑定()事件,那么我需要将这些函数绑定回该div。 See fiddle

有没有办法禁用事件并启用这些事件而不解除绑定。

提前致谢。

3 个答案:

答案 0 :(得分:2)

你可以停止这样的事件:

function handler(e){
    if(yourcondition)
        e.preventDefault();
    else {

    }
}

答案 1 :(得分:0)

您可以为这些div提供类名。并通过此类名称调用click事件,如

$(".class_name").click(function(){ });

如果要禁用click事件,请使用id选择器删除类

$("#div_id").removeClass("class_name");

当你想添加click事件然后使用id选择器添加类

$("#div_id").addClass("class_name");

答案 2 :(得分:0)

在这个例子中

http://jsfiddle.net/prollygeek/WuNGJ/2/

你可以从所有元素中删除类指针,这样任何元素都不会响应任何绑定动作,一旦你回到类中,它就会正常响应,类绑定和解除绑定可以通过单击div来完成。

$(".element").on('click',function(){
  if($(this).hasClass("triggered"))
     {

$(".element").addClass('pointer');
$(this).removeClass("triggered");
}
else if($(this).hasClass("pointer"))
     {

$(".pointer").removeClass("pointer");
$(this).addClass("triggered");
}
//do whatever
})