1

我有这个手风琴问题,如果父菜单没有“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;
});
4

1 回答 1

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/

于 2013-04-26T07:37:45.197 回答