如何使用slideUp和slideDown jquery关闭子菜单

时间:2013-04-25 15:31:27

标签: jquery

我正试图用这种方法关闭子菜单,上下推动id,此时代码slideDown子菜单,将ID向下推...我想关闭并滑动ID的...任何想法,提前谢谢!

var submenu;    

$('.menu-desktop li').click(function(){
    id = $(this).attr('id');
    $('#intro-home, #breadcrumbs-pc').animate({'margin-top':'2.4rem'}, 100)
    $('.menu-desktop ul:not(:first-child)').slideUp(100)
    $('.menu-desktop').find('.'+id).delay(200).slideDown(100)
    $('#intro-home, #breadcrumbs-pc').delay(200).animate({'margin-top':'5rem'}, 100) 


    $('.menu-desktop').find('.'+id).slideToggle("fast")
});

1 个答案:

答案 0 :(得分:0)

检查这个jsFiddle,看看它是否能满足您的需求。

http://jsfiddle.net/droppedonjapan/a66nN/3/

这是肉:

$('.main-menu li').click(function(){
    var elems = $('ul:not(.main-menu)').length;
    var $refClass = $('.' + $(this).attr('data-ref'));
    var visible = $refClass.is(':visible');

    $('ul:not(.main-menu)').slideUp(100, function() {
        if (elems == 1) {
            if (!visible) $refClass.slideDown('fast');
        }
        elems--;
    });
});

我在slideUp()函数上使用回调。每次元素完成slideUp动画时都会调用此方法。当最后一个元素完成隐藏时,如果您尝试显示/隐藏的菜单不可见,那么它将显示它。如果它可见,则在菜单隐藏后它将不会执行任何操作。