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'); }
你可以检查什么可以解除绑定? 解除手动