打开另一个菜单项时,MegaMenu不关闭子菜单

时间:2018-03-01 11:18:51

标签: javascript html css megamenu

我的MegaMenu有点问题,当我打开一个子菜单(点击主菜单的一个项目)时,我希望当我点击文档正文的任何​​地方或者如果我选择其他菜单项时,该子菜单会消失以前的子菜单必须关闭,如果我点击该子菜单(' ul'),或者子菜单上的一个特定项目,它就像我想要的那样(它关闭),但是如果我点击其他菜单项前一个子菜单保持打开,创建子菜单层,我必须点击它们使它们消失(或点击使其出现的主菜单项目)我不确定我是否清楚,  函数JS即时使用:

ReturnValues=[]
for row in cur.fetchall():
   ReturnValues.append(row)
return ReturnValues

所以我的代码是一个小提琴:

https://codepen.io/anon/pen/JpBrRp

3 个答案:

答案 0 :(得分:0)

休息,我相信我明白了这个问题。

首先,您必须检查要打开的元素是否已打开。如果打开,你将关闭,否则你将打开。

      $(".menu > ul > li").click(function(e) {
          if ($(window).width() > 943) { 
            if ($(this).children('.menu-list').is(":visible")){
               $(this).children('.menu-list').fadeToggle(15);
               $(this).children('.menu-list').toggleClass('center');
              e.preventDefault();
            } else {
               $('.menu-list').hide();
               $('.menu-list').removeClass('center');
               $(this).children('.menu-list').fadeToggle(15);
               $(this).children('.menu-list').toggleClass('center');
              e.preventDefault();
            }
          }
      });

然后你需要另一个函数来验证用户是否点击了不是关闭子菜单的菜单的其他地方。

     $("body").click(function(e) {
         var target = e.target;
        if (target.className.indexOf("menu-button") == -1 && target.offsetParent.className.indexOf("menu-button") == -1 ) {
              $('.menu-list').hide();
              $('.menu-list').removeClass('center');
            return;
        }
      });

看看这是否对您有所帮助: Multi-Series Line Chart

提示:我建议避免使用,只使用标记来引用js中的元素。这可能是将来的一个问题。

答案 1 :(得分:0)

谢谢你我的朋友Bruno Eduardo,我相信你懂葡萄牙语! Obrigado amigo !! 只有一个小错误,它只有在你点击按钮时才有效,如果点击图像它不起作用,修复你需要为链接中的每个标签添加菜单按钮。 例如:

<a role="button" class="button button4 **menu-button**"><i class="icon-crm fs1 icon **menu-button**"></i><span class="button-text rowcenter **menu-button**">{{'MenuItem1' | translate}}</span></a>

谢谢你的朋友!

答案 2 :(得分:0)

是的,我理解葡萄牙语=)。这种方法很好,另一种方法是改进功能,验证用户是否在另一个地方点击。

if (target.className.indexOf("menu-button") == -1 && target.offsetParent.className.indexOf("menu-button") == -1 )

随意选择更好的=)