Javascript 单击其他项目时关闭手风琴项目
这是一个工作样本 我正在尝试添加一个片段,以便在单击一个项目时关闭打开的项目。我已经添加了一个类“open”,但当单击另一个类时,似乎无法删除该类 目前,它们都可以打开,但我想防止这种情况发生,因为它占用了移动设备上太多的空间,并迫使背景滚动,这也会导致导航崩溃Javascript 单击其他项目时关闭手风琴项目,javascript,jquery,css,toggle,Javascript,Jquery,Css,Toggle,这是一个工作样本 我正在尝试添加一个片段,以便在单击一个项目时关闭打开的项目。我已经添加了一个类“open”,但当单击另一个类时,似乎无法删除该类 目前,它们都可以打开,但我想防止这种情况发生,因为它占用了移动设备上太多的空间,并迫使背景滚动,这也会导致导航崩溃 $(文档).ready(函数(){ //标题js (函数($){ $.fn.menumaker=函数(选项){ var cssmenu=$(此),设置=$.extend({ 格式:“下拉列表”, },选项); 返回此值。每个(函数()
$(文档).ready(函数(){
//标题js
(函数($){
$.fn.menumaker=函数(选项){
var cssmenu=$(此),设置=$.extend({
格式:“下拉列表”,
},选项);
返回此值。每个(函数(){
$(this).find(“.hamburger按钮”)。在('click',function()上{
$(this.toggleClass('menu-opened');
var mainmenu=$(this.next('ul');
如果(mainmenu.hasClass('open')){
main menu.slideToggle().removeClass('open');
}
否则{
main menu.slideToggle().addClass('open');
如果(settings.format==“下拉列表”){
main menu.find('ul').show();
}
}
});
cssmenu.find('li-ul').parent().addClass('has-sub');
$('#cssmenu li.active').addClass('open').children('ul').show();
$('cssmenu li.has sub>a')。在('click',function()上{
$(this.removeAttr('href');
var元素=$(this.parent('li');
if(element.hasClass('open')){
元素。removeClass(“打开”);
元素。find('li')。removeClass('open');
元素。查找('ul')。slideUp(200);
}
否则{
元素addClass('open');
元素。子元素('ul')。向下滑动(200);
元素。兄弟姐妹('li')。子元素('ul')。slideUp(200);
元素。同级('li')。removeClass('open');
元素。同级('li')。查找('li')。removeClass('open');
元素。同级('li')。查找('ul')。slideUp(200);
}
});
/*
multiTg=函数(){
cssmenu.find(“.has sub”).prepend(“”);
cssmenu.find(“.submenu button”)。在('click',function()上{
$(this.toggleClass('submenu-opened');
if($(this).sides('.has sub').hasClass('open')){
$(this).sides('ul').removeClass('open').slideToggle();
}
否则{
$(this).sides('ul').addClass('open').slideToggle();
}
});
};
*/
如果(settings.format==='multitogle')multiTg();
else cssmenu.addClass('dropdown');
resizeFix=函数(){
var-mediasize=1000;
如果($(窗口).width()>mediasize){
cssmenu.find('ul').show();
}
如果($(window).width()像这样的东西怎么样:
cssmenu.children().forEach(function(elem){
if(elem === mainmenu){
continue;
}
elem.removeClass('open');
});
mainmenu.slideToggle().addClass('open');
if (settings.format === "dropdown") {
mainmenu.find('ul').show();
}
在添加打开类之前,请清除所有其他元素。感谢您花时间回答。通过之前清除所有其他元素,似乎可以防止手风琴完全打开。我做了一个更新:现在可以让手风琴项目按应打开/关闭,但现在我丢失了+/-指示器(示例中注释掉了代码)