Javascript 我的子菜单仍然无法正常工作(jQuery)

Javascript 我的子菜单仍然无法正常工作(jQuery),javascript,jquery,Javascript,Jquery,我正在使用jquery创建一个子菜单。我已经做了如下代码。但是仍然有一些东西不能正常工作。我想要的是,当启动时,菜单关闭。目前,所有菜单都处于打开状态。我该怎么做,有人能帮我吗 $('.list menu>li')。单击(函数(){ var child=$(this.children('ul'); if(子项长度===0){ $(this.children().addClass(“活动”); 返回; } $('.list menu ul').not(child.slideUp('normal'

我正在使用jquery创建一个子菜单。我已经做了如下代码。但是仍然有一些东西不能正常工作。我想要的是,当启动时,菜单关闭。目前,所有菜单都处于打开状态。我该怎么做,有人能帮我吗

$('.list menu>li')。单击(函数(){
var child=$(this.children('ul');
if(子项长度===0){
$(this.children().addClass(“活动”);
返回;
}
$('.list menu ul').not(child.slideUp('normal');
儿童。向下滑动(“正常”);
});


您可以在页面加载时使用CSS将子
ul
元素设置为
display:none

ul>li>ul{display:none;}
$('.list menu>li')。单击(函数(){
var child=$(this.children('ul');
$(this.children().addClass(“活动”);
$('.list menu ul').not(child.slideUp('normal');
滑动切换(“正常”);
});
ul>li>ul{显示:无;}


将这一行
$(“.submenu”).hide()
放在页面加载上。@Swati使用CSS设置初始UI状态是更好的做法,因为它避免了通过JS设置时可能出现的FOUC,而这必须等待DOM首先加载。是的,我同意@Rorymcrossan:)。当我单击“入门”菜单时,菜单将打开。但是当我点击关闭它时,它不能。如何执行?将
slideDown()
更改为
slideToggle()
。我为你更新了答案。另外请注意,检查子项数量的
if
语句是多余的,因此可以将其与
return
语句一起删除。太酷了,谢谢!没问题,很乐意帮忙