2011-06-15 44 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加载,但我还是把最接近的办法你现有的代码。