获取手风琴与饼干也记住链接状态

问题描述:

我用这里的代码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。

+0

好吧,没有看到它已经记住了mein菜单中链接的状态。但它不在子菜单中。当点击子菜单中的链接时,还需要删除主菜单中的类并将其附加到子菜单。

在JS中删除该行重置手风琴,正确。但它也使它无法“记住”其状态,这是我明确需要保留的功能! – bogus 2014-08-28 20:25:02