首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -多层移动菜单

jQuery -多层移动菜单
EN

Stack Overflow用户
提问于 2015-04-02 13:08:49
回答 2查看 727关注 0票数 0

我需要为手机制作多层子菜单的菜单。这是动态菜单,所以我不能向html添加更多的类。当我单击有子菜单的元素时,菜单正在向下滑动。子菜单:

代码语言:javascript
复制
> ul.sub-menu

但是,当我想单击同一节点中的另一个(更深的)元素时,所有的节点菜单都将转到slideUp。

这是我的代码:jsFiddle

例如,

第一个> 03 >(关闭)>第一个>(打开03 )> 03-02 >(关闭)>第一个>03>(关闭)>第一个>元素03-02-02的节点已经打开。

谢谢你的提前帮助

完全解决方案: jsFiddle

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-02 13:46:30

试着用这个来解决问题

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2015-04-02 13:34:35

您可以尝试将单击事件绑定到每个a(而不是li),并找到要使用siblings()函数向上/向下滑动的子菜单。

您还可以使用slideToggle()打开/关闭子菜单。只有当存在同级ul时,才能防止单击。

代码语言:javascript
复制
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();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29413802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档