我有一个表结构像这样(注意与.browser类,并与其中一人两个表数据点击=“是”)选择所有的孩子,除了那些明显组与jQuery
<ul class="browser" data-click="yes">
<li><a href="#">Group 1</a>
<ul>
<li><a href="#">Item_1</a></li>
<li><a href="#">Item_2</a></li>
<li><a href="#">Item_3</a></li>
</ul>
</li>
<li><a href="#">Group_2</a>
<ul>
<li><a href="#">Item_4</a></li>
<li><a href="#">Item_5</a></li>
<li><a href="#">Item_6</a></li>
<li><a href="#">Group_3</a>
<ul class="browser">
<li><a href="#">Item_1</a></li>
<li><a href="#">Item_2</a></li>
<li><a href="#">Group_4</a>
<ul>
<li><a href="#">Item_1</a></li>
<li><a href="#">Item_2</a></li>
<li><a href="#">Item_3</a></li>
</ul>
</li>
<li><a href="#">Item_3</a></li>
</ul>
</li>
</ul>
</li>
</ul>
我想使用jQuery为<ul class="browser" data-click="yes">
元素中的A元素分配点击动作,但是我不希望此行为进一步传播到子元素<ul class="browser">
中的A元素。此外,对于这两个列表,保留class .browser是非常重要的。
我试图使用方法:以下列方式
$("body").on("click", "UL.browser[data-click='yes'] :not(.browser) A", function (event) {
// do something
});
等诸多变种没有选择器,但没有成功。由于我正在动态地改变结构,因此使用该结构将事件附加到主体对我也很重要。
我在这里发现了这个问题的很多变种,但是没有一个是完全相同的,他们没有为我工作。我觉得我误解了:不是以某种方式选择,但是我仍然无法做到。
谢谢,这就是它。我将不得不更深入地了解以下行为:not operator – LNovak