任何人都可以解释为什么以下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>
答案 0 :(得分:1)
转换为答案以关闭此
The handler/code you have works ok in testing here,看起来你有其他事件处理程序错误或阻止点击在这些锚点上发生。
确保检查那些嵌套<a>
元素上的其他事件处理程序是否正常运行,似乎存在错误。