简单的手风琴问题

时间:2013-04-26 07:30:38

标签: jquery accordion

我有这个手风琴问题,如果父菜单没有“ul”只是按照链接,但它似乎不起作用:

http://jsfiddle.net/avdQx/

$('ul#sidenav a.parent').click(function () {
    if ($(this).parent().hasClass('active')) {
        $(this).siblings('ul').slideUp('fast', function () {
            $(this).parent().removeClass('active');
        });
    } else {
        if ($(this).parents('li').has('ul')) {
            $('ul#sidenav li.active ul').slideUp('fast', function () {
                $(this).parent().removeClass('active');
            });
            $(this).siblings('ul').slideToggle('fast', function () {
                $(this).parent().toggleClass('active');
            });
        } else {
            alert(1);
        }
    }
    return false;
});

1 个答案:

答案 0 :(得分:1)

这是一个工作示例,我更改了第二个if条件,以检查当前单击的.parent元素是否在其父元素中具有ul:

$('ul#sidenav a.parent').click(function () {
    if ($(this).parent().hasClass('active')) {
        $(this).siblings('ul').slideUp('fast', function () {
            $(this).parent().removeClass('active');
        });
    } else {
        if ( $('ul', $(this).parent() ).length>0 ) {
            $('ul#sidenav li.active ul').slideUp('fast', function () {
                $(this).parent().removeClass('active');
            });
            $(this).siblings('ul').slideToggle('fast', function () {
                $(this).parent().toggleClass('active');
            });
        } else {
            alert(1);
        }
    }
    return false;
});

在这里小提琴:http://jsfiddle.net/avdQx/1/