我正在为移动设备构建一个网站,我有这个jQuery功能,它根据用户选择的内容显示或隐藏主菜单:
$(function() {
$('#nav_toggle').on('click', function(event) {
$('#main_nav').slideToggle();
$(this).toggleClass("collapsed");
event.preventDefault();
});
});我的问题是:如何在请求中保留(或不保留)菜单中的collapsed类?
现在,用户必须切换每个页面上的菜单。
在请求之间以某种方式存储它会很好,也许可以设置一个cookie?
这是如何做到的呢?
我对jQuery相当陌生,所以非常希望提供一个代码示例。
谢谢你的帮助。
发布于 2014-06-12 12:39:12
如果您使用的是HTML5,我宁愿选择本地存储:
// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname"); 发布于 2014-06-12 12:19:42
您可以尝试将查询字符串或散列附加到您的URL并以这种方式传递菜单状态。或者你可以用曲奇。
下面是在JavaScript中设置/获取cookie的代码。
function setCookie(value) {
var expires = "; ";
if (config.cookie_duration) {
var date = new Date();
date.setDate(date.getDate() + config.cookie_duration);
expires = "; expires=" + date.toGMTString() + "; ";
}
document.cookie = "SELECTED_STATE=" + value + expires + "path=/";
}
function getCookie() {
var name = "SELECTED_STATE=";
var c_arr = document.cookie.split(';');
for (var i = 0; i < c_arr.length; i++) {
var c = c_arr[i];
while (c.charAt(0) == ' ')
c = c.substring(1, c.length);
if (c.indexOf(name) == 0)
return c.substring(name.length, c.length);
}
return null;
}免责声明:我很久以前就在网上找到了基本的想法,我不记得到底是从哪里来的。它被修改以适应我正在做的一个项目的需要,所以我只是在这里复制它。
发布于 2014-06-12 12:20:32
是的,您可以保存cookie并在所有页面上使用它。
document.cookie="username=John Smith; path=/";
获取cookie代码
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
return "";
}在页脚上写这样的东西
$(document).ready(function(){
if(getCookie(cookiename)!=''){
$('menuIdOrClass').addClass('class Name Which keep menu open')
}
});索鲁斯- cookies.asp
https://stackoverflow.com/questions/24184128
复制相似问题