仅在单击外部li时才会触发的事件

时间:2013-12-06 13:22:28

标签: javascript jquery html

我希望在单击外部列表的li时触发事件。我已经为它编写了一个函数,但即使单击内部列表li,事件也会被触发。请帮忙。

我有以下HTML结构:

  <ul class="nav nav-pills nav-stacked" id="outer-menu">
     <li id="R1"><a href="#">Sample Reports</a>
          <ul class="nav nav-pills nav-stacked" id="inner-menu">
        <li><a href="#">Employee salary report</a></li>
        <li><a href="#">Car sales Report</a></li>
        <li><a href="#">Business client report</a></li>
        </ul>
     </li>
    </ul>

和jquery:

$(document).ready(function() {
    $('#outer-menu a').on('click',function(){
        alert("this clicked");
    });
});

3 个答案:

答案 0 :(得分:2)

您可以使用以下内容将匹配集限制为仅指导儿童:

$('#outer-menu > li > a').on('click',function() {
    ...
});

答案 1 :(得分:0)

尝试

$('#outer-menu li a').on('click',function(){
    alert("this clicked");
});

甚至尝试

$('#outer-menu #R1 a').on('click',function(){
    alert("this clicked");
});

答案 2 :(得分:0)

您只需要定位直接子项,并且您还可以停止事件传播/冒泡(此处您在点击事件中使用了警报,但如果稍后使用动画,则需要停止动画传播),所以您可以使用以下代码:

    $(document).ready(function(){
      $('#outer-menu > li > a').on('click',function(){
        alert("this clicked");
      }).stop(true, true);
    });