Javascript cookie保存和加载
javascript cookies save and load
我有这个javascript代码来改变网站的风格。但是这段代码只在单击它时才改变样式。刷新页面后,它返回默认值。我希望它保存用户的首选项。我真的很喜欢这个代码,我不想用另一个代码来改变它。你能帮帮我吗?我想让你给我的代码后,添加cookie代码到它!
$(document).ready(function() {
$("#fullswitch").click(function() {
$("#chpheader").removeClass("compact");
$("#imgg").removeClass("compact");
$("#chpheader").removeClass("original");
$("#imgg").removeClass("original");
$("#chpheader").addClass("normal");
$("#imgg").addClass("normal");
});
$("#compactswitch").click(function() {
$("#chpheader").addClass("compact");
$("#imgg").addClass("compact");
$("#chpheader").removeClass("original");
$("#imgg").removeClass("original");
$("#chpheader").removeClass("normal");
$("#imgg").removeClass("normal");
});
$("#originalswitch").click(function() {
$("#chpheader").addClass("original");
$("#imgg").addClass("original");
$("#chpheader").removeClass("compact");
$("#imgg").removeClass("compact");
$("#chpheader").removeClass("normal");
$("#imgg").removeClass("normal");
});
});
你做错了。您应该向顶级元素(如根元素(<html>
))添加一个类,并根据该类对文档的其余部分进行样式设置。
.style1-p {
background: blue;
}
.style1-div {
background: red;
}
应该成为
.style1 p {
background-blue;
}
.style1 div {
background-red;
}
这样,您只需要更改一个类,而整个文档将更改。这也意味着你只需要保存一个cookie(它描述了一个类),并且只加载它一次。
<标题> jsFiddle例子编辑:jsFiddle的例子更新,包括cookie。
EDIT2: jsFiddle的例子更新,包括多个样式!
标题>一个cookie只是一个键值对,所以你可以有一个cookie每个元素,你是样式的关键是id和值是类名。在jQuery中,你可以这样设置它们:
$("#chpheader").removeClass("compact");
$.cookie("chpheader", $("#chpheader").attr('class'));
然后在你的doc ready的顶部你会有:
$(document).ready(function() {
if($.cookie("#chpheader")) {
$("#chpheader").set("className", $.cookie("#chpheader"));
}
....
但是警告一下,你的代码已经有点乱了,如果你开始到处设置和取消cookie,事情会变得很乱。我建议尝试取出一些函数,并设置观察者模式。还有,你真的需要上普通的课吗?如果有的话你真的需要在添加精简类时去掉它吗?
相关文章:
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 如何在浏览器重新加载时保存位置哈希状态
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载
- 在页面加载之间保存画布
- 如何在画布上绘制(使用鼠标/触摸)、保存绘制的对象、存储、加载和操作
- 如何保存和加载HTML5画布到&来自localStorage
- Outlook加载项使用Javascript将附件保存到磁盘
- 保存对文件的更改而不重新加载页面
- 如何突出显示HTML内容并根据用户将其保存到数据库中以备将来加载
- 小册子:如何在数据库中保存各种标记位置并稍后加载
- 将图像从表单保存到本地存储并存储/加载它
- 将复选框选中的状态保存并加载到数据库
- 会话存储未保存或未加载
- 在浏览器中合并并保存加载的样式表到一个文件中
- 在Javascript中保存和加载不起作用
- 加载保存文本区域不起作用,如图所示
- 如何在角度UI中加载保存的可排序对象
- 更流畅的页面加载保存JQuery toggleClass设置
- 保存一个动能.层及其子层加载保存的页面
- 如何跨页面加载保存网格筛选器状态