获取手风琴与饼干也记住链接状态
问题描述:
我用这里的代码http://www.designchemical.com/blog/index.php/jquery/jquery-simple-vertical-accordion-menu-with-cookies/,并修改了一下,以适应我的项目,它工作得很好。现在我有两个障碍,我似乎无法克服。获取手风琴与饼干也记住链接状态
1:Cookie可能还存储了我点击的最后一个链接的状态吗?像给它一个类,所以我可以应用另一种背景颜色与CSS?如果我点击某个孩子的链接,我想这样只有一个链接一次处于活动状态,它将不得不再次删除该类。
2:当我通过点击手风琴上方的标志来刷新页面时,它保持打开状态。我很想再次崩溃,就像我第一次访问该网站时一样。
棘手的东西。我有一个工作演示here(could'nt让它上的jsfiddle工作)
这是JS:
$(document).ready(function() {
var checkCookie = $.cookie("nav-item");
if (checkCookie != "") {
$('#nav > li > a:eq('+checkCookie+')').addClass('active').next().show();
}
$('#nav > li > a').click(function(){
var navIndex = $('#nav > li > a').index(this);
$.cookie("nav-item", navIndex);
$('#nav li ul').slideUp();
if ($(this).next().is(":visible")){
$(this).next().slideUp();
} else {
$(this).next().slideToggle();
}
$('#nav li a').removeClass('active');
$(this).addClass('active');
});
});
非常感谢提前!
答
要回答你的第一个问题,它已经这样做了。这就是活动链接较暗的原因。寻找这一行的标签中并更改值不同的颜色:如果你想每个人有不同的颜色时活跃,那也是有可能
#nav li a:hover, #nav li a.active {background: #999; color: #fff;}
,但随后你会想给他们唯一的ID(类似到类,但通常每个元素都是唯一的),并使用CSS选择器修改它们的属性。
关于第二个问题,请尝试删除这一行:
if (checkCookie != "") {
$('#nav > li > a:eq('+checkCookie+')').addClass('active').next().show();
}
因为这就是它的检查cookie的页面加载后的存储值。这不是为我在本地保存cookie,所以我无法验证它是否有效。您可能需要在页面加载时清除nav-item
Cookie。
好吧,没有看到它已经记住了mein菜单中链接的状态。但它不在子菜单中。当点击子菜单中的链接时,还需要删除主菜单中的类并将其附加到子菜单。
在JS中删除该行重置手风琴,正确。但它也使它无法“记住”其状态,这是我明确需要保留的功能! – bogus 2014-08-28 20:25:02