关闭jQuery菜单中以前的项

关闭jQuery菜单中以前的项,jquery,menu,toggle,slide,Jquery,Menu,Toggle,Slide,第一次在这里发帖,但我总是先来这里做研究。不管怎样,我到处都找遍了,找不到解决问题的可靠办法。问题就在这里,我用jQuery 1.9.1和slideToggle函数创建了一个垂直滑动菜单。我已经在jsFiddle中放了一个示例 第1项 清单分项1 清单分项2 第2项 清单分项1 清单分项2 第1项 清单分项1 清单分项2 第2项 清单分项1 清单分项2 $(文档).ready(函数(){ $(“.topnav,.subnav”)。单击(函数(事件){ ev

第一次在这里发帖,但我总是先来这里做研究。不管怎样,我到处都找遍了,找不到解决问题的可靠办法。问题就在这里,我用jQuery 1.9.1和slideToggle函数创建了一个垂直滑动菜单。我已经在jsFiddle中放了一个示例

    • 第1项
      • 清单分项1
      • 清单分项2
      第2项
      • 清单分项1
      • 清单分项2
    • 第1项
      • 清单分项1
      • 清单分项2
      第2项
      • 清单分项1
      • 清单分项2
  • $(文档).ready(函数(){ $(“.topnav,.subnav”)。单击(函数(事件){ event.stopPropagation(); $(this.children(“ul”).slideToggle(); }); });
    菜单工作得很好,但我需要弄清楚如何在打开另一个子菜单时关闭上一个子菜单。此外,我需要一种方法来区分父级和子级,以便它知道关闭topnav或subnav。我对整个jQuery都是新手,但我正在慢慢地学习。谢谢你的帮助,我很感激。

    试试看

    $(document).ready(function(){
        $(".topnav, .subnav").click(function(event){
            event.stopPropagation();
            $(this).closest('ul').find('.active').stop().slideToggle().removeClass('active');
            $(this).children("ul").slideToggle().addClass('active');
        });
    });
    
    演示:

    试试看

    $(document).ready(function(){
        $(".topnav, .subnav").click(function(event){
            event.stopPropagation();
            $(this).closest('ul').find('.active').stop().slideToggle().removeClass('active');
            $(this).children("ul").slideToggle().addClass('active');
        });
    });
    

    演示:

    您可以向上滑动已单击元素的所有子元素:

    $(this).siblings().children('ul').slideUp();
    
    这样,您就不需要知道单击的元素是
    topnav
    还是
    subnav
    元素,并且它将根据需要支持尽可能多的嵌套


    您可以向上滑动已单击元素的所有子元素:

    $(this).siblings().children('ul').slideUp();
    
    这样,您就不需要知道单击的元素是
    topnav
    还是
    subnav
    元素,并且它将根据需要支持尽可能多的嵌套


    这一个很接近,但在你点击几次后会崩溃。这一个稍微好一点,但在你点击几次后仍会因为某种原因而崩溃。这一个很接近,但在你点击几次后会崩溃。这一个稍微好一点,但是在你点击了几次之后,仍然会因为某些原因而发疯。这非常有效。我把它放进去了,它很棒,也很简单。非常感谢。我还不能投票,但我一定会接受答案,再次感谢。@user2216047没问题,很高兴能帮助这一切完美地完成。我把它放进去了,它很棒,也很简单。非常感谢。我还不能投票,但我一定会接受答案,再次谢谢。@user2216047没问题,很高兴能帮忙