【发布时间】:2018-03-12 02:48:37
【问题描述】:
基本思想是我有一堆 div,其中每个都可以切换(显示/隐藏)。
当切换一个 div 时,我希望其他当前显示为隐藏的 div,因此一次只允许显示一个 div。
此外,我还希望能够在元素外部单击以隐藏打开的 div。
为了让事情更清楚,我提供了一个示例,除了在打开另一个 div 时关闭一个 div(一次只打开一个 div 功能)之外,它目前可以执行我想要的所有操作:
$(document).ready(function(){
$('div.dropdown').each(function() {
var $dropdown = $(this);
$("a.dropdown-link", $dropdown).click(function(e) {
e.preventDefault();
$("div.dropdown-container", $dropdown).toggle();
return false;
});
});
$('html').click(function(){
$("div.dropdown-container").hide();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="dropdown-1" class="dropdown dropdown-processed">
<a class="dropdown-link" href="#">Options</a>
<div class="dropdown-container" style="display: none;">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
<div id="dropdown-2" class="dropdown dropdown-processed">
<a class="dropdown-link" href="#">Options</a>
<div class="dropdown-container" style="display: none;">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
<div id="dropdown-3" class="dropdown dropdown-processed">
<a class="dropdown-link" href="#">Options</a>
<div class="dropdown-container" style="display: none;">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
【问题讨论】:
-
手风琴做你想做的事吗? jqueryui.com/demos/accordion
-
@KieranAndrews:听起来很像,只是当你点击其他地方时它不会自动关闭。
-
有个设置,我找一下。
-
对不起,手风琴对于我要找的东西来说有点多。我宁愿保持轻量级,不需要插件。
-
我的回答将完成您所要求的一切,而无需在您单击菜单项时关闭菜单(其他答案已错过......)。