几个小时以来一直在为这个简单的选择器问题苦苦挣扎,而且肯定遗漏了一些明显的东西。我有一个<ul>
其中一些<li>
s 嵌套了<ul>
s。每个都<li>
包含一个链接,当单击它时,我想执行一个功能(而不是导航),但重要的是,这应该只发生在父级中包含的<ul>
链接,而不是任何可能存在于嵌套<ul>
. 你会认为很简单:
HTML:
<ul>
<li>
<a href="dontleavethis.page">A link</a>
<ul>
<li><a href="navigate.there">A nested link</a></li>
<li><a href="navigate.somewhere">Another nested link</a></li>
</ul>
</li>
</ul>
jQuery:
$('li:has(ul) a').click(function() {
bla bla bla...
return false;
});
问题是,无论我如何表达我的选择器,我都无法阻止嵌套中的链接<ul>
触发点击处理程序。它们显然不符合":has(ul)"
选择器的标准,但由于某种原因,处理程序仍然被附加。我在这里做错了什么?