我有这个手风琴问题,如果父菜单没有“ul”只是按照链接,但它似乎不起作用:
$('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;
});
答案 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/