2010-06-18 87 views
1

我有這個顯示/隱藏菜單。 它可能是這個菜單使內存?(我打開子菜單,刷新頁面,這個子菜單STIL開放。)javascript顯示/隱藏內存

<script type="text/javascript"> 
function change(id){ 
    ID = document.getElementById(id); 

    if(ID.style.display == "") 
      ID.style.display = "none"; 
    else 
      ID.style.display = ""; 
     } 
</script> 
    <div onclick="change(5)" style="cursor: hand"> 
     <a href = "#">+</a>News 
    </div> 
    <div style="display: none" id="5"> 
     News1<br/> 
     News2<br/> 
    </div> 

回答

1

簡短的回答:餅乾。

長答案:我建議你不要嘗試它,除非它真的很重要。餅乾相當複雜。但是,假設您只想存儲一個值,則可以將其簡化。

function createCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

然後,你可以這樣做:

下面有兩個用於設置和Quirksmode讀取Cookie,如果你一定要很好的功能

<script type="text/javascript"> 
function change(id){ 
    ID = document.getElementById(id); 

    if(ID.style.display == "") 
      ID.style.display = "none"; 
    else 
      ID.style.display = ""; 
      createCookie("id",id,7); /* 1 week */ 
     } 

window.onload = function() { 
    try{change(readCookie("id"));}catch(e){} //rough example 
}; 
</script> 
    <div onclick="change(5)" style="cursor: hand"> 
     <a href = "#">+</a>News 
    </div> 
    <div style="display: none" id="5"> 
     News1<br/> 
     News2<br/> 
    </div> 
+0

非常感謝,但如何在cookie中投入更多值?例如,我有新聞,文章,照片。現在只刷新一個節目後。 – user319854 2010-06-18 09:44:32

+0

使用'createCookie()'函數。例如,'createCookie(「news」,news,7)'(新聞是新聞部分顯示的區塊)。 'createCookie(「articles」,articles,7)',等等。然後只需添加相應的readCookie編碼。 – tcooc 2010-06-19 03:05:47

0

當然您也可以使用AJAX發送到PHP頁面調用(或任何你正在使用的語言),並讓它爲該用戶存儲會話。然後,當頁面加載時,檢查這些會話變量以查看它們是否打開並使它們以這種方式開始。海事組織,額外的編碼是不值得記住他們已經打開的菜單。如果某些鏈接對該頁面很重要,則應始終可見。否則,如果它們在頁面重新加載時摺疊,則無關緊要。

0

你可以通過你設置的cookie來做到這一點,只要用戶點擊。 window.load()將需要讀取cookie和配置當然