我希望能够通过点击按钮隐藏和取消隐藏冗长的菜单,而且我能够做到。但我不希望访问者每次访问新页面时都必须隐藏菜单,所以我希望记住他们的最后一次点击。这是我无法做到的。任何帮助表示赞赏。我甚至愿意采取更好的方式来做到这一点。
我认为可行的代码,但不是,
$(document).ready(function(){
$("button").click(function(){
$("div.themenu").toggle(100);
});
});
$(function(){
if($.cookie){
$("#themenu").toggle(!(!!$.cookie("toggle-state")) || $.cookie("toggle-state") === 'true');
}
$('#menubutton').on('click', function(){
$("#themenu").toggle();
$.cookie("toggle-state", $("#themenu").is(':visible'), {expires: 1, path:'/'});
});
});
他们点击按钮的代码是:
<button id="menubutton" class="myButton">Show / Hide Menu</button>
长而长的菜单显示如下:
<div class="themenu">Long Long Menu Code</div>
答案 0 :(得分:0)
只是为了好玩:这是一个不需要cookie的替代解决方案,但设置了一个URL参数:
//on page load
if (location.href.match('menu=show'))
$("#themenu").toggle();
//for every link click, block & redirect with menu=show if menu is visible
$(document.body).on('mousedown', 'a', function(e) {
e.preventDefault();
var menuParam = (location.href.match('?') ? '&' : '?') + 'menu=show';
location.href = $("#themenu").is(':visible') ? this.href + menuParam: this.href;
});
答案 1 :(得分:0)
localStorage
是存放这种状态的好地方。设置就像localStorage.menu = 'hidden'
或localStorage.menu = 'visible'
一样简单,可以使用(localStorage && localStorage.menu==='hidden')
进行检查。拥有真正旧浏览器的用户无法获得该功能,但这只是一小部分用户。此设置将在访问该网站时生效,但仅限于同一浏览器。某些浏览器在“隐私浏览”中存在问题。模式。它们有时会使localStorage在修改时导致错误。