Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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 Jquery子菜单accordion在单击时关闭并打开_Javascript_Html_Jquery_Css - Fatal编程技术网

Javascript Jquery子菜单accordion在单击时关闭并打开

Javascript Jquery子菜单accordion在单击时关闭并打开,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我有汉堡包菜单,我用jquery做了一个手风琴式的子菜单。尽管它只适用于1084px及更小的设备。 否则,菜单将使用桌面上的悬停式子菜单 尽管出于某种原因,使用这两种技术(使用css悬停和使用jquery的手风琴)是行不通的。 因此,我将媒体查询添加到jquery中,这使得悬停和手风琴可以工作 但是 一旦按下手风琴,它会自动打开和关闭多次,这是错误的,因此无法正常工作。 有人能帮我吗?这个问题只有在我将媒体查询添加到Jquery时才会发生 jQuery(document).ready(fun

我有汉堡包菜单,我用jquery做了一个手风琴式的子菜单。尽管它只适用于1084px及更小的设备。 否则,菜单将使用桌面上的悬停式子菜单

尽管出于某种原因,使用这两种技术(使用css悬停和使用jquery的手风琴)是行不通的。 因此,我将媒体查询添加到jquery中,这使得悬停和手风琴可以工作

但是

一旦按下手风琴,它会自动打开和关闭多次,这是错误的,因此无法正常工作。 有人能帮我吗?这个问题只有在我将媒体查询添加到Jquery时才会发生

  jQuery(document).ready(function($) {

    $(window).resize(function() {
      if ($(window).width() < 500) {
        function initMenu() {
          $('#nav ul').hide();
          $('#nav li a').click(
            function() {
              var checkElement = $(this).next();
              if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
                $('#nav ul:visible').slideToggle('normal');
              }
              if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
                removeActiveClassFromAll();
                $(this).addClass("active");
                $('#nav ul:visible').slideToggle('normal');
                checkElement.slideToggle('normal');
                return false;
              }
              if ($(this).siblings('ul').length == 0 && $(this).parent().parent().attr('id') == 'nav') {
                removeActiveClassFromAll();
                $(this).addClass("active");
                $('#nav ul:visible').slideToggle('normal');
                return false;
              }
            }
          );
        }

        function removeActiveClassFromAll() {
          $('#nav li a').each(function(index) {
            $(this).removeClass("active");
          });
        }
        $(document).ready(function() {
          initMenu();
        });
        $('#nav').click(function(e) {
          e.stopPropagation();
        })
        $(document).click(function() {
          $('#nav').children('li').each(function() {
            if ($(this).children('ul').css('display') == 'block') {
              $(this).children('ul').slideToggle('normal')
              $(this).children('a').removeClass('active')
            }
          })
        })

      }

    });

  });

jQuery(文档).ready(函数($){
$(窗口)。调整大小(函数(){
如果($(窗口).width()<500){
函数initMenu(){
$('#nav ul').hide();
$(#nav li a')。单击(
函数(){
var checkElement=$(this.next();
如果((checkElement.is('ul'))和(&(checkElement.is(':可见))){
$('#导航ul:visible')。滑动切换('normal');
}
如果((checkElement.is('ul'))&(!checkElement.is(':visible')){
removeActiveClassFromAll();
$(此).addClass(“活动”);
$('#导航ul:visible')。滑动切换('normal');
检查元素。滑动切换(“正常”);
返回false;
}
if($(this.sibbines('ul').length==0&&$(this.parent().parent().attr('id')=='nav')){
removeActiveClassFromAll();
$(此).addClass(“活动”);
$('#导航ul:visible')。滑动切换('normal');
返回false;
}
}
);
}
函数removeActiveClassFromAll(){
$(#nav li a')。每个(函数(索引){
$(此).removeClass(“活动”);
});
}
$(文档).ready(函数(){
initMenu();
});
$('#nav')。单击(函数(e){
e、 停止传播();
})
$(文档)。单击(函数(){
$('#nav')。子项('li')。每个(函数(){
if($(this).children('ul').css('display')='block')){
$(this).children('ul').slideToggle('normal'))
$(this.children('a').removeClass('active'))
}
})
})
}
});
});
这是一个jsfiddle

如果(window.matchMedia(“(最大宽度:500px)”).matches,请提前感谢{

}

这将起作用,但是您需要刷新页面以使其工作。

如果(window.matchMedia((最大宽度:500px)”).matches){

}

这将起作用,但是您需要刷新页面以使其工作。

这是一个JSFIDLE这是js FIDLE sorry这是一个JSFIDLE这是js FIDLE抱歉