【发布时间】:2017-03-25 09:22:05
【问题描述】:
我有一个包含三个级别的基本 HTML 菜单:
<ul>
<li><a href="#"></a></li>
<li><a href="#"></a>
<ul class="sub-menu">
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>
</li>
<li><a href="#"></a>
<ul class="sub-menu">
<li><a href="#"></a></li>
<li><a href="#"></a>
<ul class="sub-menu">
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>
</li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>
</li>
<li><a href="#"></a>
<ul class="sub-menu">
<li><a href="#"></a></li>
<li><a href="#"></a></li>
<li><a href="#"></a></li>
</ul>
</li>
<li><a href="#"></a></li>
</ul>
加载时,我只想显示顶级导航项。当用户单击链接时,他们将看到子菜单。因为,我有:
$('ul li a').click(function() {
$(this).next('.sub-menu').toggle();
});
效果很好。
$('ul li a').click(function() {
$(this).next('.sub-menu').toggle();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a>
<ul class="sub-menu">
<li><a href="#">2.1</a></li>
<li><a href="#">2.2</a></li>
<li><a href="#">2.3</a></li>
</ul>
</li>
<li><a href="#">3</a>
<ul class="sub-menu">
<li><a href="#">3.1</a></li>
<li><a href="#">3.2</a>
<ul class="sub-menu">
<li><a href="#">3.2.1</a></li>
<li><a href="#">3.2.2</a></li>
<li><a href="#">3.2.3</a></li>
</ul>
</li>
<li><a href="#">3.3</a></li>
<li><a href="#">3.4</a></li>
</ul>
</li>
<li><a href="#">4</a>
<ul class="sub-menu">
<li><a href="#">4.1</a></li>
<li><a href="#">4.2</a></li>
<li><a href="#">4.3</a></li>
</ul>
</li>
<li><a href="#">5</a></li>
</ul>
问题是子菜单不会隐藏,除非您再次单击它们(切换)。
我希望一次只显示一个导航项,并且它是子菜单。
我需要的是每个不是被点击隐藏的顶级导航项的子菜单的子菜单。
【问题讨论】:
标签: javascript jquery