2011-06-15 60 views
0
<script> 
function HideandUNhideObj(ThisObj) { 
var nav = document.getElementById(ThisObj).style 
if (nav.display == "none") { 
nav.display = 'block'; 
} else { 
nav.display = 'none'; 
} 
} 
</script> 

<ul class="removebullet"> 
<li> 
<div onclick="HideandUNhideObj('div1');">Head</div> 
<div style="display: none;" id="div1"> 
<ul class="removebullet"> 
<li><a>Submenu1</a></li> 
<li><a >Submenu2</a></li> 
<li><a >Submenu3</a></li> 
</ul> 
</div> 
</li> 
</ul> 

在「頭」如果您使用的是最新的瀏覽器點擊它顯示的子菜單... 如何保存這個菜單的位置在其他頁面後重定向?謝謝的Javascript菜單

+4

請勿使用強悍的JavaScript構建菜單。沒有它,有很多方法可以做出漂亮的菜單。 – 2011-06-15 19:04:34

+0

@ErickPetru如果您打算在不回答問題的情況下發表評論,可能會對您提及什麼令人反感的JavaScript有幫助。 – TylerH 2014-02-27 14:35:06

回答

0

下面是一個使用HTML5本地存儲工作示例:http://jsfiddle.net/ryancook/99oqp1oy/

只需刷新瀏覽器,看看它記住,如果子菜單打開或關閉。

function saveMenu (show) { 
    if ('localStorage' in window && window['localStorage'] !== null) { 
     if (show) { 
      localStorage.submenu = 'show'; 
     } else { 
      localStorage.submenu = 'hide'; 
     } 
    } 
} 

function restoreMenu() { 
    if ('localStorage' in window && window['localStorage'] !== null) { 
     if (localStorage.submenu === 'show') { 
      HideandUNhideObj('div1'); 
     } 
    } 
} 

function HideandUNhideObj(ThisObj) { 
    var nav = document.getElementById(ThisObj).style; 
    if (nav.display == "none") { 
     nav.display = 'block'; 
     saveMenu(1); 
    } else { 
     nav.display = 'none'; 
     saveMenu(0); 
    } 
} 

restoreMenu(); 

您需要將您的JavaScript移動到HTML的身體的底部(見小提琴),除非你調整你的JavaScript等待DOM加載,但我還是把最接近的辦法你現有的代碼。