2010-03-26 121 views
1

我有一個菜單子菜單可以切換(隱藏/顯示類型的交易)。 有沒有比較簡單的方法來記住菜單的最後一個狀態? (我在點擊標題時隱藏/顯示子菜單並更改標題樣式,以便背景箭頭將改變(上/下))。 它工作正常,但我想它記住最後一個狀態,所以當用戶轉到站點上的另一個頁面並返回時,菜單顯示的方式與用戶離開它的方式相同。 我不太擅長餅乾,所以任何幫助將不勝感激。 是的,菜單是從使用PHP的數據庫動態生成的。 現在只有2個子菜單​​的標題,但會有更多,所以我需要一些方法,可以「擴展」任何數量的子菜單。 也有沒有必要記得它更長,然後一次訪問。如何記住Jquery的最後狀態?

當前的URL是這樣的: http://valleyofgeysers.com/geysers.php

回答

4

可以使用jQuery cookie plugin for this

就躲在時,表現出,然後在什麼基礎上設置任何cookie顯示負載設定設置cookie。 "display" - this.id

如果包裹着<div id="unique">每個菜單就像你有間歇泉(所以我們有一個唯一的ID來設置一個cookie),這樣的事情應該工作:您可以通過命名餅乾這樣做

$('h3').next('.g_menu').filter(function() { 
    return $.cookie("expanded-" + $(this).parent("[id]").attr("id")); 
}).hide(); 

$('h3').click(function(){ 
    $(this).toggleClass('closeit').toggleClass('openit'); 
    var menu = $(this).next('.g_menu'); 
    if(menu.is(':visible')) { 
     menu.fadeOut(50); 
     $.cookie("expanded-" + $(this).parent().attr("id"), true); 
    } else { 
     menu.fadeIn(980);    
     $.cookie("expanded-" + $(this).parent().attr("id"), null); 
    } 
});​ 

爲了使這項工作,在<div id="other"></div>You can play with a sample to see this in action here包裹<h3 class="openit">Other</h3><div class="g_menu"></div>

+0

謝謝。 它有幫助。 ('div:hidden')。prev('h3')。addClass('openit');我已經添加了這行 $('div:hidden')。 $('div:visible')。prev('h3')。addClass('closeit'); 並從h3標籤中刪除類屬性。 現在似乎工作得很好。 再次感謝。 – 2010-03-27 04:51:51