在复选框状态上设置Cookie

时间:2015-11-16 09:20:27

标签: javascript jquery html cookies

我试图通过浏览其他帖子找到一种方法来设置复选框状态的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? 已经尝试过

3 个答案:

答案 0 :(得分:1)

您不一定要使用Cookie,您可以使用localStoragesessionStorage

  

localStorage属性允许您访问本地Storage对象。 localStoragesessionStorage类似。唯一的区别是,虽然存储在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")