javascript - 恢复div的css属性

标签 javascript jquery session-storage

我正在尝试在我的站点刷新后从 div 恢复显示属性(noneblock)。我有多个 div 与那个类,但有一个唯一的 ID。在这些 div 中有一些复选框,这些复选框在选中/取消选中后会刷新站点。

这是一个 jsfiddle:https://jsfiddle.net/074jatfs/2/

这是我的侧边栏,带有我的 div 和复选框:

<div class="filter-panel filter--property facet--property" data-filter-type="value-list" data-field-name="f">
   <div class="filter-panel--flyout" style="border:none;"><div id="label-it" class="label-it"><label class="filter-panel--title"><h3>Filter Group 1</h3></label></div>
   <div class="filter-panel--content" id="FilterGroup1">
      <ul class="filter-panel--option-list" style="list-style-type:none;">
         <li class="filter-panel--option">
            <div class="option--container" style="display:block;">
            <span class="filter-panel--checkbox"><input type="checkbox" value="603"><span class="checkbox--state">&nbsp;</span>
            </span>
            <label>Filter 1</label>
         </div>
         </li>
         <li class="filter-panel--option">
            <div class="option--container" style="display:block;">
            <span class="filter-panel--checkbox"><input type="checkbox" value="613"><span class="checkbox--state">&nbsp;</span>
         </span>
             <label>Filter 2</label>
         </div>
         </li>
         </ul>
         </div>
         </div>
         <div class="filter-panel filter--property facet--property" data-filter-type="value-list" data-field-name="f">
   <div class="filter-panel--flyout" style="border:none;"><div id="label-it" class="label-it"><label class="filter-panel--title"><h3>Filter Group 2</h3></label></div>
   <div class="filter-panel--content" id="FilterGroup2">
      <ul class="filter-panel--option-list" style="list-style-type:none;">
         <li class="filter-panel--option">
            <div class="option--container" style="display:block;">
            <span class="filter-panel--checkbox"><input type="checkbox" value="603"><span class="checkbox--state">&nbsp;</span>
            </span>
            <label>Filter 3</label>
         </div>
         </li>
         <li class="filter-panel--option">
            <div class="option--container" style="display:block;">
            <span class="filter-panel--checkbox"><input type="checkbox" value="613"><span class="checkbox--state">&nbsp;</span>
         </span>
             <label>Filter 4</label>
         </div>
         </li>
         </ul>
         </div>
         </div>
         <div class="filter-panel filter--property facet--property" data-filter-type="value-list" data-field-name="f">
   <div class="filter-panel--flyout" style="border:none;"><div id="label-it" class="label-it"><label class="filter-panel--title"><h3>Filter Group 3</h3></label></div>
   <div class="filter-panel--content" id="FilterGroup3">
      <ul class="filter-panel--option-list" style="list-style-type:none;">
         <li class="filter-panel--option">
            <div class="option--container" style="display:block;">
            <span class="filter-panel--checkbox"><input type="checkbox" value="603"><span class="checkbox--state">&nbsp;</span>
            </span>
            <label>Filter 5</label>
         </div>
         </li>
         <li class="filter-panel--option">
            <div class="option--container" style="display:block;">
            <span class="filter-panel--checkbox"><input type="checkbox" value="613"><span class="checkbox--state">&nbsp;</span>
         </span>
             <label>Filter 6</label>
         </div>
         </li>
         </ul>
         </div>
         </div>

当 div label-it 被点击时,div filter-panel--contentdisplay:block 切换到 display :none 和另一种方式(display:nonedisplay:block)

此时我想保存display的当前属性,并在站点刷新时恢复它。

这是我第一次尝试sessionStorage属性,我尝试在toggle函数中设置它:

$('.label-it').click(function() {

  $(this).closest(".filter-panel--flyout").find(".filter-panel--content div").toggle(350)

sessionStorage.setItem("filterstate", $("#FilterGroup1").css("display"));

});

要恢复 filterstate 我试过这个:

$(document).ready(function () {
    sessionStorage.getItem("filterstate");
    if (sessionStorage.getItem("filterstate"))
    {
        $("#FilterGroup1").css("display", sessionStorage.getItem("filterstate"));
    }
});

我无法恢复 css 属性,有人可以帮助我吗?请。

最佳答案

您需要尝试存储实际切换的 div 的 display 值 而不是它的 parent 。

sessionStorage.setItem("filterstate", $("#FilterGroup1 .option--container").css("display"));

关于javascript - 恢复div的css属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58519154/

相关文章:

jquery - Intuit IPP 在 IE 中摧毁 jQuery

javascript - Firefox 15 中的 ajaking onbeforeunload

javascript - 如何在调整窗口大小时更改 img src?

javascript - 添加CSS关键帧动画改变图像大小

javascript - AngularJS Promise 在从数据库获取数据之前执行

javascript - 根据元素的颜色验证表单是一个好习惯吗?

javascript - SessionStorage,只获取最后的值

javascript - 在 Javascript 中将名称定义添加到 "Function"

javascript - localStorage 不适用于用户帐户

javascript localstorage 两个div