Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击其他项目时关闭手风琴项目_Javascript_Jquery_Css_Toggle - Fatal编程技术网

Javascript 单击其他项目时关闭手风琴项目

Javascript 单击其他项目时关闭手风琴项目,javascript,jquery,css,toggle,Javascript,Jquery,Css,Toggle,这是一个工作样本 我正在尝试添加一个片段,以便在单击一个项目时关闭打开的项目。我已经添加了一个类“open”,但当单击另一个类时,似乎无法删除该类 目前,它们都可以打开,但我想防止这种情况发生,因为它占用了移动设备上太多的空间,并迫使背景滚动,这也会导致导航崩溃 $(文档).ready(函数(){ //标题js (函数($){ $.fn.menumaker=函数(选项){ var cssmenu=$(此),设置=$.extend({ 格式:“下拉列表”, },选项); 返回此值。每个(函数()

这是一个工作样本

我正在尝试添加一个片段,以便在单击一个项目时关闭打开的项目。我已经添加了一个类“open”,但当单击另一个类时,似乎无法删除该类

目前,它们都可以打开,但我想防止这种情况发生,因为它占用了移动设备上太多的空间,并迫使背景滚动,这也会导致导航崩溃

$(文档).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();
      }

在添加打开类之前,请清除所有其他元素。

感谢您花时间回答。通过之前清除所有其他元素,似乎可以防止手风琴完全打开。我做了一个更新:现在可以让手风琴项目按应打开/关闭,但现在我丢失了+/-指示器(示例中注释掉了代码)