我正在尝试为我正在开发的网站创建一个垂直的手风琴菜单。这是我第一次用 jquery 做任何事情。我已经能够以我想要的方式获得一个工作菜单,除了几件事。
1)我需要一个菜单,该菜单将根据加载的页面保持扩展,如果您单击第二个菜单内的项目,则在重新加载页面时需要扩展第二个菜单。当您从菜单中单击并加载新页面时,菜单不会保持展开状态。页面重新加载后,它会完全折叠,直到您单击标题以再次展开它。我已经在网上搜索了几天,找不到可以用来解决这个问题的任何东西。我已经研究过使用 jquery cookie 插件,只是检查当前加载了哪个页面并使用它来确定需要扩展哪个菜单,但我无法让它们中的任何一个工作。
2) 我的菜单仅在单击时展开,再次单击时不会折叠。是否可以通过再次单击来折叠刚刚展开的同一个菜单?
这是我创建的 js 文件:
function initMenu() {
$('#menu ul').hide();
$('#menu li a').click(function () {
var checkElement = $(this).next();
if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$(this).siblings().removeClass("selected");
return false;
}
if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#menu ul:visible').slideUp('normal');
checkElement.slideDown('normal');
if (!$(this).hasClass("selected")) {
// Remove the class from anything that is active
$("a.selected").removeClass("selected");
// And make this active
$(this).addClass("selected");
}
return false;
}
});
}
$(document).ready(function () {
initMenu();
});
这是完整的 html 和 css 的 jsfiddle:http: //jsfiddle.net/CShsY/
谢谢。