使用Cookie保存JQuery切换状态

时间:2014-04-09 15:36:48

标签: javascript jquery html css cookies

我有一个iFrame,可以在按钮点击时切换为可见或隐藏。我正在使用JQuery .toggle函数来执行此操作。目前,该区域的div默认通过CSS隐藏:style =“display:none”

一个新的要求是要求保存用户最近的显示或隐藏(选定的切换状态)以用于下一页加载,因此如果他们选择在上次显示iFrame时显示在主页上,他们下次访问它时默认可见。我想用cookie设置最后选择的切换状态,但我无法使其工作。以下是我的代码:

<meta charset="utf-8">
<title>drop demo</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<style>
  #toggle {
    width: 100px;
    height: 100px;
    background: #ccc;
  }
  .button {
    padding-top: 10px;
    padding-right: 20px;
  }
</style>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<button type="button" id="button"
title="Personalized Sales Dashboard">Show/Hide</button>
<div id="toggle" style="display:none" frameborder="2">
<iframe src="https://sample.com"="" id="myfr" scrolling="no" frameborder="0"
 height="800px" width="100%">Your Browser Do not Support Iframe</iframe>
</div>
<script>
  $("#button").click(function () {
    $("#toggle").toggle("blind");
  });
  $(function () {
    $("#button").tooltip();
  });
</script>

1 个答案:

答案 0 :(得分:1)

在按钮上设置一个cookie,点击div是否可见:

document.cookie = "toggleState=" + $("#toggle").is(':visible');

并在页面加载时检索它,相应地显示或隐藏内容:

var toggleState = document.cookie.replace(/(?:(?:^|.*;\s*)toggleState\s*\=\s*([^;]*).*$)|^.*$/, "$1");

if (toggleState == 'true') {
    $("#toggle").show();
}
else {
    $("#toggle").hide();
}

https://developer.mozilla.org/en-US/docs/Web/API/document.cookie