1

当我点击子菜单时,我收到 2 个警报,弹出窗口首先显示 1,然后第二个弹出窗口给我 2。我希望警报按照正确的顺序为 0、1、2、3 等,按照导航大批。不是子菜单项只是数组中的以下项吗?

<ul id="menu">
   <li><a href="page1">Item 1</a></li>
   <li><a href="page2">Item 2</a> 
      <ul id="sub-menu">
           <li><a href="page3">Item 3</a></li>
      </ul>
   </li>
   <li><a href="page4">Item 4</a></li>
</ul>

查询:

jQuery (function($) {
  $("#menu .menu li").each(function (index) {
     var item = $(this);
     $("a", item).click(function (e) {
        e.preventDefault();
        alert(index);
     });
  });
});
4

2 回答 2

3

一种不使用的方法event.stopPropagation()

jQuery (function($) {
  $("#menu .menu li").each(function (index) {
    var item = $(this);
    $("> a", item).click(function (e) {
      e.preventDefault();
      alert(index);
    });
  });
});​

它只会触发li.

这是工作示例

于 2012-05-21T17:44:04.777 回答
0

哦,我以为你想要相对于最近的封闭 ul 的索引:http: //jsfiddle.net/mari/68Zjt/

于 2012-05-21T18:10:34.280 回答