jQuery阻止对子onclick事件的父操作

时间:2013-05-08 07:21:24

标签: jquery

点击子元素

时,我试图阻止父点击操作

我的JavaScript代码:

$(".profile").bind("mouseenter mouseleave click",function(e){
e.stopPropagation();
e.preventDefault();
//if blocks depending of one of three actions
} 

在.profile元素内部是带列表的DIV

<div id="tooltip-content" class="tooltip center" style="display: block;">
        <ul>
            <li id="name">Toms IrForšs </li>
            <li id="main"><a onclick="something()">1</a></li>
            <li id="remove"><a onclick="something()">2</a></li>
            <li id="sendmail"><a onclick="something()">3</a></li>
        </ul>
</div>

但是当调用something方法时,也会触发父点击事件。

2 个答案:

答案 0 :(得分:2)

试试这个

 $(".profile").bind("mouseenter mouseleave click",function(e){ 
   if (e.target == this)
   {
      //do your stuff
   }
 });

只有在单击的元素与绑定的元素相同时,才会执行if条件中的代码。

并使用on()代替bind()

答案 1 :(得分:0)

我为您创建了小提琴,其概念应该适合您(link),而您的代码几乎没有变化。

您错过的是使用stopImmediatePropagation方法取消传播。

就是这样!