【发布时间】:2014-02-28 16:16:00
【问题描述】:
我有两个带有 jQuery 下拉菜单的 div。当我单击文档上的任意位置时,一个活动菜单会向上滑动,但是当我使用 jQuery 下拉菜单单击另一个 div 时,之前打开的菜单仍保持打开状态。
HTML(示例)
<div id="menu-act" class="menu-button">
<ul class="no-js">
<li>
<a id="btnclick" class="actions">Actions</a>
<ul class="action-options">
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
</ul>
</li>
</ul>
</div>
<div id="menu-act2" class="menu-button">
<ul class="no-js">
<li>
<a id="btnclick2" class="actions">Actions</a>
<ul class="action-options">
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
</ul>
</li>
</ul>
</div>
JQuery(示例)
$(function() {
$("#menu-act > ul").toggleClass("no-js js");
$("#menu-act .js ul").hide();
$("#menu-act .js").click(function(e) {
$("#menu-act .js ul").slideToggle(100);
$("#btnclick").toggleClass("active");
e.stopPropagation();
});
$("#menu-act2 > ul").toggleClass("no-js js");
$("#menu-act2 .js ul").hide();
$("#menu-act2 .js").click(function(e) {
$("#menu-act2 .js ul").slideToggle(100);
$("#btnclick2").toggleClass("active");
e.stopPropagation();
});
$(document).click(function() {
if ($('.menu-button .js ul').is(':visible')) {
$('.menu-button .js ul', this).slideUp(10);
$('.actions').removeClass('active');
}
});
});
演示:http://jsfiddle.net/56ycx/1/
当我点击另一个下拉菜单时,如何隐藏以前打开的菜单?
【问题讨论】:
-
你能发布相关的HTML,并在JSfiddle中创建一个演示吗?
标签: jquery drop-down-menu