切换事件的jquery问题仅在第二次单击时触发

时间:2010-03-29 21:40:50

标签: jquery jquery-selectors

任何人都可以解释为什么以下jquery只会触发第二个切换事件以及如何修复它?具体来说,每次我点击嵌套的< a>它会提示警报“第二次点击”。

我测试了选择器,以确保它正确地选择了元素,或者至少它插入了一个没有任何问题的类。

选择器正在选择无序列表中具有锚标记的最后一个节点。

$("#nav li:not(:has(li)) a").toggle(function() { //1st click
              alert("1st Click");
        }, function() { //2nd click
            alert("2nd Click");
        });

失败的嵌套HTML结构:

<ul id="nav">
    <li>
      <span>stuff</span>
      <a href="#">Cat 1</a>
        <ul>
           <li>
               <span>stuff</span>
               <a href="#">Subcat1</a>
                 <ul>
                    <li>
                       <span>Stuff</span>
                       <a href="#">Subcat Details</a>
                    </li>
                 </ul>
           </li>
        </ul>
    </li>
</ul>

但是,这样做是正确的,并触发两个点击事件:

<ul id="nav">
    <li>
      <span>stuff</span>
      <a href="#">Cat 1</a>
    </li>
</ul>

1 个答案:

答案 0 :(得分:1)

转换为答案以关闭此

The handler/code you have works ok in testing here,看起来你有其他事件处理程序错误或阻止点击在这些锚点上发生。

确保检查那些嵌套<a>元素上的其他事件处理程序是否正常运行,似乎存在错误。