jquery – 禁用点击

我只是想禁用用户点击某个条件的元素的能力。 以下是我正在使用的一些代码:

$('#navigation a').bind('click',function(e){ var $this = $(this); var prev = current; current = $this.parent().index() + 1; // store the position in current if (current == 1){ $("#navigation a:eq(1)").unbind("click"); // i want to disable the ability to click this element if current is 1 } if (current >= 2){ $("#navigation a:eq(1)").bind("click"); // this is wrong, but I want to rebind the click if current is greater than 1. } 

}

如果您使用jQuery版本1.4.3+:

 $('selector').click(false); 

如果不:

 $('selector').click(function(){return false;}); 

假设你使用点击事件,只是解开那个。

 if (current = 1){ $('li:eq(2)').unbind("click"); } 

编辑:你目前绑定到您的列表中的点击事件? 基于你上面的评论,我想知道这是否真的是你在做什么? 你如何启用点击? 它只是一个锚( <a>标签)? 一点更明确的信息将帮助我们回答你的问题。

更新:

有一些玩弄:eq()运算符。 http://jsfiddle.net/ehudokai/VRGfS/5/

正如我应该预料的那样,它是一个基于0的索引操作符。 所以,如果你想在你的select第二个元素,select的地方

 $("#navigation a") 

你只需要添加:eq(1)(第二个索引)然后.unbind(“click”)所以:

 if(current == 1){ $("#navigation a:eq(1)").unbind("click"); } 

应该做的伎俩。

希望这可以帮助!

生JavaScript可以很快完成同样的事情:

 document.getElementById("myElement").onclick = function() { return false; } 

您可以使用unbind方法来删除已附加的处理程序…

 if (current = 1){ $('li:eq(2)').unbind('click'); } 

你可以检查什么可以解除绑定? 解除手动