jquery slideup / down函数,如果特定的类怎么保持元素打开?

时间:2015-01-28 22:18:47

标签: jquery css jquery-ui-slider

我有一个包含父元素和子元素的菜单。如果将鼠标悬停在包含子项的父项上,则子菜单会向下滑动。如果你盘旋,它会向上滑动。完美。

但是,如果您在子页面上,如何更改此jquery以默认打开该子菜单?

所以如果一个项目有类" current_page_ancestor"它将在页面加载时打开

jQuery(function($) {
$('.side-menu ul > li, ul.children > li, .side-menu ul > li, ul.sub-menu > li').hover(function () {
if ($('> ul.children, > ul.sub-menu',this).length > 0) {
    $('> ul.children, > ul.sub-menu',this).stop().slideDown('slow');
}
},function () {
    if ($('> ul.children, > ul.sub-menu',this).length > 0) {
        $('> ul.children, > ul.sub-menu',this).stop().slideUp('slow');
    }
});

});

http://jsfiddle.net/9s32z8hy/

1 个答案:

答案 0 :(得分:0)

通过创建打开和关闭菜单项的功能,您可以使代码更加模块化。然后你可以检查页面加载是否有一个带有类current_page_ancestor的li元素并使用一个函数来打开它:

jQuery(function ($) {
    $('.side-menu ul > li, ul.children > li, .side-menu ul > li, ul.sub-menu > li').hover(function () {
        if ($('> ul.children, > ul.sub-menu', this).length > 0) {
            slideOpen(this);
        }
    }, function () {
        if ($('> ul.children, > ul.sub-menu', this).length > 0) {
            slideClose(this);
        }
    });

    if ($('li').hasClass('current_page_ancestor')) {
        slideOpen('.current_page_ancestor');
    }
});

function slideOpen(item) {
    $('> ul.children, > ul.sub-menu', item).stop().slideDown('slow');
}

function slideClose(item) {
    $('> ul.children, > ul.sub-menu', item).stop().slideUp('slow');
}

小提琴:http://jsfiddle.net/9s32z8hy/2/