单击两个嵌套的<li> s </li>

时间:2015-02-05 12:28:04

标签: javascript jquery

美好的一天。我搜索过高低。一无所获。

我有这个结构:

<ul class='c1'>
  <li>
AAA
    <ul class='c2'>
      <li>
BBB
      </li>
    </ul>
  </li>
</ul>

和jquery处理程序:

$('.c1>li').bind('dblclick',function() {
    alert('a')
});
$('.c2>li').bind('dblclick',function() {
    alert('b')
});

但是当我点击C2时,我会收到两条消息,而不仅仅是&#39; b&#39;。     event.stopPropagation()无法解决问题

谢谢。

3 个答案:

答案 0 :(得分:5)

您还需要在函数中使用event作为参数,以便与stopPropagation一起使用:

$('.c2>li').bind('dblclick',function(event) {
   event.stopPropagation() 
   alert('b')
});

Working Demo

答案 1 :(得分:1)

您可以在声明后返回false

$('.c1>li').bind('dblclick', function() {
    alert('a');
    return false;
});

$('.c2>li').bind('dblclick', function() {
    alert('b');
    return false;
});

答案 2 :(得分:-1)

您可以使用此代码

$( "ul.c1 li" ).children().dblclick(function(e){
    e.stopPropagation(); 
    alert("a");
})

$( "ul.c2 li" ).children().dblclick(function(e){
    e.stopPropagation();
    alert("b");
})