2010-08-06 101 views
2

我有最初關閉的div。然後下面的代碼控制打開/關閉:在jquery中存儲信息的概念

$("p:contains('INVESTOR')").click(function() { 
     if($('#cs_investorServ').is(':hidden')) { 
       $('#cs_investorServ').animate({opacity:'toggle', height: 'toggle'},'fast', function(){ 
       $('#cs_furlBar1 .cs_furlHeaderClosed').removeClass().addClass('cs_furlHeaderOpen'); 
       }); 

    } else { 
       $('#cs_investorServ').animate({opacity:'toggle', height: 'toggle'},'fast', function(){ 
       $('#cs_furlBar1 .cs_furlHeaderOpen').removeClass().addClass('cs_furlHeaderClosed');}); 
       } 
    }); 

我現在的問題是,有是div內的顯示/隱藏,這需要用戶到另一個頁面瓦特/詳細信息的鏈接。所以,如果用戶返回到第一頁,那麼div會再次關閉,因爲我最初在所有div上運行hide()。 (客戶端授權)

如何保存在返回該頁面時div被「打開」的事實?我想知道如果我可以使用data方法,但不知道如何構建。

因爲我有一個if/else檢查是:hidden,我只是認爲另一個if/else會干擾if/else的隱藏。

所以,我想切換打開一個div,然後點擊裏面的div並轉到另一個頁面,當返回到原始頁面時,請點擊發起的div仍然打開。

我把這個作爲doc ready函數中的第一個動作:$('.cs_hideOpen').hide();所以不知道如何'刪除'該類,但只有當用戶顯示div並從該div單擊時。

回答

0

jquery有一個插件可以讓你設置,閱讀和刪除cookies--使通過javascript設置cookies變得更容易。找到插件Here.

只需在div被取消隱藏時設置cookie。每次加載頁面時都可以檢查該cookie。

0

有三種方法可以解決這個問題。

  • 您可以將服務器端的DIV狀態存儲在用戶會話中(如果有)。您需要使用AJAX將DIV狀態發送回服務器,然後以某種方式標記DIV(當它由服務器生成時)(向其中添加一個類或某個類),以便它保持打開狀態。
  • 您可以將DIV的狀態存儲在cookie中。 Google Code上的Cookie項目提供了一個乾淨的API並與jQuery集成:http://code.google.com/p/cookies/
  • 您可以使用HTML 5本地存儲來存儲DIV的狀態。 Google搜索「html5 localstorage」以獲取有關該主題的文章。本地存儲是一種在舊版瀏覽器上不可用的新技術(例如,IE 6和IE 7)。