Javascript 如何一次只打开一个子菜单

Javascript 如何一次只打开一个子菜单,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经做了响应菜单。这很好用 但问题是这一点。我想一次打开一个菜单 打开一个子菜单时,是否应隐藏另一个菜单 我该怎么做 这是我的脚本代码 这里是一个工作演示 $(文档).ready(函数(){ $('.hrmenu>ul')。在(“”)之前; (“.”之前的$(“.hrmenu ul ul”); $('.main')。单击(函数(){ $('.hrmenu>ul').slideToggle(); }); $('.moremain')。单击(函数(){ $(this).next('.hrmenu

我已经做了响应菜单。这很好用

但问题是这一点。我想一次打开一个菜单

打开一个子菜单时,是否应隐藏另一个菜单

我该怎么做

这是我的脚本代码


这里是一个工作演示

$(文档).ready(函数(){
$('.hrmenu>ul')。在(“”)之前;
(“.”之前的$(“.hrmenu ul ul”);
$('.main')。单击(函数(){
$('.hrmenu>ul').slideToggle();
});
$('.moremain')。单击(函数(){
$(this).next('.hrmenu ul').slideToggle();
$(this).parents('li').eq(0).sibbines().each(function()){
var _toggle=$(this).find('.moremain').eq(0);
if(_toggle.hasClass(“活动”)){
_toggle.removeClass(“活动”);
$(this.find('ul').eq(0).slideToggle();
}
});
$(此).toggleClass(“活动”);
});
$(窗口)。调整大小(函数(){
如果(window.screen()>1000)
{
$('.hrmenu ul').show();
}
});
});
*{margin:0px;padding:0px}
.hr菜单{最大宽度:1000px;边距:0px自动}
.hrmenu ul{背景:#06C;}
.hrmenu ul:在{content:”;显示:块;清除:两者}
.hrmenu ul li{float:左;位置:相对;列表样式类型:无;边距:1px;}
.hrmenu ul li a{填充:5px;文本装饰:无;字体大小:16px;字体系列:arial;颜色:#fff;边距:1px;显示:内联块;}
.hrmenu ul li a:悬停{背景:#39C}
.hr菜单ul li:hover>ul{display:block}
.hr菜单ul li ul{显示:无;位置:绝对;宽度:140px;左侧:0}
.hrmenu ul li ul li{宽度:100%;背景:#069;}
.hrmenu ul li ul{左侧:100%;顶部:0;宽度:200px;}
.hrmenu ul li ul li{背景:#336;}
.hrmenu ul li ul li{背景:#366;}
.main{显示:无;高度:19px;背景:#003 url(threelines.png)无重复;光标:指针;文本对齐:右;}
.moremain{高度:19px;显示:无;宽度:19px;背景:绿色;光标:指针;位置:相对;文本对齐:中心;
显示:无;颜色:#fff}
.moremain:在{content:'+';字体大小:18px;}之后
.active{背景:橙色;显示:无;文本对齐:居中;}
.active:在{content:'-';字体大小:18px;颜色:#fff;}之后
@媒体屏幕和屏幕(最大宽度:1000px)
{
.moremain{显示:内联块;}
.main{显示:块;}
.hrmenu ul{背景:无}
.hrmenu ul li{float:none;background:rgb(5,27,61);}
.hr菜单ul{显示:无}
.hr菜单ul li:hover>ul{显示:无}
.hrmenu ul li ul{宽度:98%}
.hrmenu ul li ul{位置:相对}
.hrmenu ul li a{宽度:86%}
.hr菜单ul li{宽度:98%}
.hrmenu ul li ul{宽度:100%}
.hrmenu ul li ul{左:0}
}


您不需要javascript来创建下拉菜单,只需使用css即可

/*所有li元素的规则*/
李{
位置:相对;/*允许子菜单使用其父菜单的位置作为参考*/
显示:内联块;
填充物:5px;
}
/*仅子菜单li元素的规则*/
/*子菜单仅在其li父菜单悬停时显示*/
li>ul{
显示:无;
位置:绝对位置;
}
李:悬停>ul{
显示:块;
}
/*子菜单的子菜单显示在其父菜单的右侧和同一横坐标上*/
李莉:悬停>ul{
左:100%;
排名:0;
}
*{margin:0px;padding:0px;color:#fff}
ul{列表样式类型:无;}
a{空白:nowrap;}
.hrmenu ul{背景:#06C;}
.hrmenu ul ul{背景:#aaf;}
.hrmenu ul{背景:#06C;}
.hrmenu ul{背景:#aaf;}
/*所有li元素的规则*/
李{
位置:相对;/*允许子菜单使用其父菜单的位置作为参考*/
显示:内联块;
填充物:5px;
}
/*仅子菜单li元素的规则*/
/*子菜单仅在其li父菜单悬停时显示*/
li>ul{
显示:无;
位置:绝对位置;
}
李:悬停>ul{
显示:块;
}
/*子菜单的子菜单显示在其父菜单的右侧和同一横坐标上*/
李莉:悬停>ul{
左:100%;
排名:0;
}


这就是您要找的

$(".hr-nav-wrapper").hrNavMenu({ 
        speed:800, //integer in milliseconds  1000,2000
        menuType :"fromLeft", //fromLeft, fromTop
        desktopListWidth : "fluid", // fluid, default
        openEvent : "click", //click, mouseover
        multiple  : false // true, false

    });

下载

我看到您的
子菜单下有多个
子菜单
!那你想怎么做?你想关闭所有的
子菜单
,或者只关闭那些
子菜单
的兄弟姐妹?你好,Rao先生,我需要所有子菜单上都有它,他们的孩子我认为@tkay回答得对吗?请接受同样的回答,这样做是必要的:)当然可以,我会使用eq();)嗨,盖尔,谢谢你的时间,但我需要及时的解决方案,盖兹。我这里做的是导航菜单
$(".hr-nav-wrapper").hrNavMenu({ 
        speed:800, //integer in milliseconds  1000,2000
        menuType :"fromLeft", //fromLeft, fromTop
        desktopListWidth : "fluid", // fluid, default
        openEvent : "click", //click, mouseover
        multiple  : false // true, false

    });