向下滑动菜单 - 如何一次只允许一条路径打开?

时间:2015-02-13 11:28:34

标签: javascript jquery css menu slidetoggle

目前,如果我打开一个菜单并点击另一个菜单,则打开第二个菜单,第一个打开。我甚至可以同时打开所有人!

我想改变这种行为,这样我一次就不会打开多个菜单。 (占所有级别/子菜单)

说我打开“Home”并点击“Item 4”。出现“子项1”和“子项2”。如果我然后单击顶部的“联系人”,则在“联系人”向下滑动之前,打开的另一个菜单应该关闭(理想情况下所有级别应一次向上滑动一个)。

我知道问题是Javascript,所以我不会在这里粘贴HTML和CSS,以免占用太多空间。

JSFiddle

由于

$(function(){
    $('ul#menu li').on('click', function(){
         $(this).children('ul').delay(20).slideToggle(600);
    });
});

$('ul').on('click', function(e){
  e.stopPropagation();
});

1 个答案:

答案 0 :(得分:0)

试试这个Fiddle

JS代码:

    $(function(){
        $('ul#menu li').on('click', function(){
            if($(this).children('.drop').size() > 0) {
                $("ul.drop").slideUp();
                $("ul.drop").find('ul').hide();
            } else {

            }

         $(this).children('ul').delay(20).slideToggle(600);
        });
    });

    $('ul').on('click', function(e){
      e.stopPropagation();
    });