我试图通过浏览其他帖子找到一种方法来设置复选框状态的cookie。基本上,我在jQuery中使用切换功能,当选中复选框时隐藏一些div。当用户转到其他页面时,他需要再次单击复选框以隐藏这些div
jQuery(document).ready(function () {
jQuery('#checkbox').change(function () {
jQuery('#ilan').fadeToggle();
});
});
有没有快速的方法可以将cookie设置为1或2天左右? 增加:How to hide or display DIV based on checkbox state on different page? 已经尝试过
答案 0 :(得分:1)
您不一定要使用Cookie,您可以使用localStorage
或sessionStorage
:
localStorage
属性允许您访问本地Storage
对象。localStorage
与sessionStorage
类似。唯一的区别是,虽然存储在localStorage
中的数据没有到期时间,但是当浏览会话结束时(即浏览器关闭时),sessionStorage
中存储的数据会被清除。
jQuery(function ($) {
// localStorage saves text only
var checked = localStorage.getItem('checked') === "true";
$('#checkbox').prop('checked', checked);
$('#ilan').toggle(!checked);
$('#checkbox').change(function () {
$('#ilan').fadeToggle();
var isChecked = $(this).is(':cheched');
localStorage.setItem('checked', isChecked);
});
});
API:
答案 1 :(得分:1)
https://github.com/carhartl/jquery-cookie 使用您的代码
$(document).ready(function () {
$('#checkbox').change(function () {
$('#ilan').fadeToggle();
isilanVisible = $('#ilan').is(":visible");
$.cookie("isilanVisible", isilanVisible, { expires : 2 });
});
if ($.cookie("isilanVisible") == false){
$('#ilan').hide();
$('#checkbox').prop('checked', true);
}
});
答案 2 :(得分:0)
https://github.com/carhartl/jquery-cookie
您可以设置Cookie:
$.cookie("myCookie", 123);
要删除:
$.removeCookie("myCookie");
此外,要在cookie上设置特定天数(此处为2)的超时:
$.cookie("myCookie", 123, { expires : 2 });
如果省略expires选项,则cookie将成为会话cookie,并在浏览器退出时被删除。
要回读cookie的值:
var cookieValue = $.cookie("myCookie")