【发布时间】:2013-01-11 18:52:16
【问题描述】:
我正在尝试,并且仍在寻找解决此问题的最佳方法。我有多个下拉菜单。我正在尝试检查其他打开的菜单,关闭它们,然后在单击的菜单上运行动画,或者如果单击的菜单已经打开,则直接关闭单击的菜单。这是我到目前为止所拥有的。
$('ul.primary li').click(function(event) {
if ($(this).children('ul.drop').is(':visible')) {
$(this).children('ul.drop').slideUp(function() {
$(this).parent('li').removeClass('active');
});
}
else if ($(this).siblings().children('ul.drop').is(':visible')) {
$(this).siblings().children('ul.drop').slideUp(function() {
$(this).parent('li').removeClass('active');
});
$(this).children('ul.drop').slideDown(function() {
$(this).parent('li').addClass('active');
});
}
else {
$(this).children('ul.drop').slideDown(function() {
$(this).parent('li').addClass('active');
});
}
});
编辑:我无法弄清楚如何在单击下拉动画打开之前关闭打开的下拉动画。 JsFiddle:http://jsfiddle.net/JG9dB/
【问题讨论】:
-
你的问题是什么。如果您正在寻找代码审查,请尝试codereview.stackexchange.com
-
你能用标记设置一个小提琴吗?这将使我们更容易使用和可视化。
-
抱歉没有解释。问题是,我不知道如何在下一个打开之前关闭打开的菜单动画。 JsFiddle:jsfiddle.net/JG9dB
-
也许“我怎样才能让被点击的菜单等待打开,直到另一个菜单的关闭动画完成?”
标签: jquery drop-down-menu menu