2014-08-28 49 views
0

我用這裏的代碼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'); 
    }); 
}); 

非常感謝提前!

回答

0

要回答你的第一個問題,它已經這樣做了。這就是活動鏈接較暗的原因。尋找這一行的標籤中並更改值不同的顏色:如果你想每個人有不同的顏色時活躍,那也是有可能

#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