2015-04-02 60 views
0

我需要为手机制作带多级子菜单的菜单。 这是动态菜单,所以我不能添加更多的类到html。 菜单往下滑,当我元素上单击其中有孩子.SUB菜单:jQuery - 手机多级菜单

> ul.sub-menu 

但是,当我想点击同一节点另一(深)元素的所有该节点的菜单是要效果基本show。

这是我的代码: jsFiddle

例如:

首先> 03>(闭合)>首先>(03被打开)> 03-02>(闭合)>首先> 03>(关闭)>首先>我的节点到元素03-02-02已经打开。

感谢您的帮助

FULL这里的解决方案: jsFiddle

+0

你可以停止点击 – 2015-04-02 13:14:24

+0

但如何传播,使这个? – Daniel 2015-04-02 13:15:48

+0

所以,你想弄清楚如何让子菜单项下滑? – snowYetis 2015-04-02 13:28:48

回答

0

尝试使用此方法解决问题

var test1 = $('#menu-mobile-slide ul.menu li'); 
    test1.on('click', function(e) { 
     e.preventDefault(); 

     var mobileMenu = $(e.target).parent().find('> ul.sub-menu'); 
     if(mobileMenu.css('display') == 'none') { 
      mobileMenu.slideDown(); 
      e.stopPropagation(); 
     } else { 
      mobileMenu.slideUp(); 
      e.stopPropagation(); 
     } 
    }); 
+0

非常感谢,但现在链接例如:第一> 03> 03-01不工作:( [jsFiddle](http://jsfiddle.net/bpj2g447/3/) – Daniel 2015-04-02 13:56:14

+0

它工作。你能重新检查解决方案 – 2015-04-02 13:58:06

0

您可以尝试点击事件绑定到每a(而不是li),找到子菜单用siblings()函数向上/向下滑动。您可以使用打开/关闭子菜单。 仅当存在兄弟ul时才能防止点击。

var test1 = $('#menu-mobile-slide li > a'); 
test1.on('click', function(e) { 
    var mobileMenu = $(this).siblings('ul'); 
    if (mobileMenu.length > 0) { 
     e.preventDefault(); 
    } 
    mobileMenu.slideToggle(); 
});