我是 jQuery 的菜鸟,我需要帮助。我来做一个简单的导航,用这个 HTML 代码:
<div class="tabs">
<div class="tab">
<a class="tab-link" href="#">SPECS</a>
<div class="sub-menu">
<a href="#">Specs 1</a>
<a href="#">Specs 2</a>
<a href="#">Specs 3</a>
</div>
</div>
<div class="tab">
<a class="tab-link" href="#">GALLERY</a>
<div class="sub-menu">
<a href="#">Gallery 1</a>
<a href="#">Gallery 2</a>
<a href="#">Gallery 3</a>
</div>
</div>
<div class="tab">
<a class="tab-link" href="#">PROJECTS</a>
<div class="sub-menu">
<a href="#">Projects 1</a>
<a href="#">Projects 2</a>
<a href="#">Projects 3</a>
</div>
</div>
<div class="tab">
<a class="tab-link" href="#">CONTACT US</a>
<div class="sub-menu">
<a href="#">Contact 1</a>
<a href="#">Contact 2</a>
<a href="#">Contact 3</a>
</div>
</div>
</div>
我得到了这个 jQuery 代码:
$(".tab-link").click(function () {
$(this).parent().find(".sub-menu").toggleClass("visible");
});
.sub-menu 隐藏在 css 中,而 .visible 类只是display:block;
它工作得很好,但我遇到了一个问题。如果我单击第一个菜单项,它会正确打开子菜单。但是,如果我单击另一个项目,它将打开第一个子菜单上方的子菜单。我必须单击之前单击的子菜单父级以将其关闭。我希望它更简单,如果已经打开了子菜单,当我单击另一个父级时,它将首先隐藏所有具有可见类的 .sub-menus,然后将 .visible 类添加到该子菜单。我希望我很清楚。
谢谢。