我有一个包含父元素和子元素的菜单。如果将鼠标悬停在包含子项的父项上,则子菜单会向下滑动。如果你盘旋,它会向上滑动。完美。
但是,如果您在子页面上,如何更改此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');
}
});
});
答案 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');
}