Jquery 子菜单向上滑动,如果已向下选择,则向下滑动(错误)

Jquery 子菜单向上滑动,如果已向下选择,则向下滑动(错误),jquery,html,drop-down-menu,accordion,submenu,Jquery,Html,Drop Down Menu,Accordion,Submenu,您好,我的jQuery垂直手风琴风格菜单有问题 如果单击子菜单,它将下拉。如果单击其他子菜单,当前子菜单将向上滑动,然后单击的子菜单将向下滑动 我正在使用.slideUp()jQuery函数将所有子菜单默认返回到向上位置,然后再向下滑动下一个子菜单 问题是当你点击一个子菜单时,它会下降,然后你点击同一个子菜单,然后它会向上滑动,然后再向下滑动 我怎样才能防止这种情况发生? 相反,如果子菜单已经向下,我希望它向上滑动 请参阅我的JSFIDLE:您的问题在选择器中。您可以使用“下方选择器滑块”对其他

您好,我的jQuery垂直手风琴风格菜单有问题

如果单击子菜单,它将下拉。如果单击其他子菜单,当前子菜单将向上滑动,然后单击的子菜单将向下滑动

我正在使用
.slideUp()
jQuery函数将所有子菜单默认返回到向上位置,然后再向下滑动下一个子菜单

问题是当你点击一个子菜单时,它会下降,然后你点击同一个子菜单,然后它会向上滑动,然后再向下滑动

我怎样才能防止这种情况发生? 相反,如果子菜单已经向下,我希望它向上滑动


请参阅我的JSFIDLE:

您的问题在选择器中。您可以使用“下方选择器滑块”对其他子菜单进行滑动,并在导航中滑动所有子菜单

$("#nav ul")
如果使用此选择器,则需要使用.not()函数对其进行修改,并删除函数中的当前,$(this)元素

$("#nav ul").not($(".submenu-customers")).slideUp();

使用此选择器,如果用户单击“打开”子菜单,则它将仅为slideUp。您可以看到一个演示:

我对您的代码进行了一些修复:

$('document').ready(函数(){
$(#nav li')。在('click',函数(e)上{
e、 预防默认值();
$(this.find('>a').addClass('selected-sub');
$(this.find('.submenu').slideToggle();
$(this).sides().find('>a').removeClass('selected-sub');
$(this).sides().find('.submenu').slideUp();
});
$('.li'子菜单)。在('单击')上,函数(e){
e、 停止传播();
});
});
。子菜单{
显示:无;
}
ul#nav li.子菜单li{
列表样式类型:无;
}
ul#nav li a{
颜色:#CCC;
显示:块;
文字装饰:无;
填充:13px 10px;
字号:0.8em;
边框底部:1px实心#0a0a;
-webkit转换:0.2s;
-moz跃迁:0.2s;
-o-转变:0.2s;
过渡:0.2s;
}
ul#导航li a:悬停,ul#子菜单li a:悬停{
背景色:#030303;
文字装饰:无;
}
ul#子菜单li a{
颜色:#CCC;
显示:块;
文字装饰:无;
填充:13px 10px;
左侧填充:30px;
字号:0.8em;
边框底部:1px实心#0a0a;
-webkit转换:0.2s;
-moz跃迁:0.2s;
-o-转变:0.2s;
过渡:0.2s;
}
ul#nav li a.选中,ul#nav li a:激活{
背景色:#030303;
文字装饰:无;
}
ul#nav li a.selected-sub,ul#nav li a.selected-sub:悬停{
背景色:#3c;
}