如果单击了类的任何子元素,jquery会在父项上切换类吗



我有一个包含以下html的菜单。

<div class="menu">
<div class="foo">
<div class="secondary" >
<a href="/#">link</a>
<div class="bar" >
<div class="foo">
<a href="/#">link</a>
</div>
<div class="foo">
<a href="/#">link</a>
</div>
</div>
</div>
</div>

我有两种不同的元素结构

.foo .secondary a 
.foo .secondary .bar .foo a

当单击a时,我想将一个类添加到作为.secondary父级的foo中,当单击任何其他"a"时,我希望从作为.secondial 父级的foo中删除该类

类似的东西

$( ".foo > a" ).click(function() {
$( this ).closest(".secondary").closest(".foo").toggleclass("class");
});

我怎样才能做到这一点?

感谢

您的描述有点令人困惑,但如果我理解正确,您希望从以前选择的任何元素中删除该类。

像这样的东西应该有助于

$( ".foo > a" ).click(function() {
// toggle the current foo
const $fooParent = $(this).closest('.foo').toggleClass("active-class")
// remove from any other foo
$('.foo').not($fooParent).removeClass('active-class')
});

最新更新