禁用UL内部链接的事件处理程序

时间:2010-10-12 13:01:54

标签: jquery

我有一个LI元素,我添加了一个“Toggle”事件处理程序

$("#myUL li").toggle {}

在LI内部有一个锚(链接)元素:

<ul id ="myUL">
<li>Click anywhere to initiate toggle handler <a href="/">(Except here)</a></li>
</ul>

如果用户点击UL内部的链接,如果用户点击该链接旁边的UL内的任何地方,我怎么能告诉jQuery不要启动Toggle事件?

感谢

乔尔

1 个答案:

答案 0 :(得分:2)

您需要停止锚定点击事件的传播:

$('#myUL > li > a').bind('click', function(e){
   e.stopPropagation();
});

请参阅此操作:http://www.jsfiddle.net/YjC6y/6/

另一种方法是检查处理程序中的event target

$('#myUL li').toggle(function(e){
   if(e.target.tagName !== 'A'){
      // do something
   }
}, function(e){
});

参考:.stopPropagation()