首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LocalStorage无法添加“打开”类并将其保存下来

LocalStorage无法添加“打开”类并将其保存下来
EN

Stack Overflow用户
提问于 2016-03-29 16:16:30
回答 2查看 231关注 0票数 0

我使用LocalStorage保持一个开关横幅打开/关闭。不幸的是,我无法正确地实现在横幅的切换#按钮上保持一个打开的类,从而相应地改变它的样式。

我的代码:

代码语言:javascript
运行
复制
$('#button').click(function () {
    $(this).siblings().slideToggle(function() {
    localStorage.setItem('display', $('#banner').is(':hidden'));
    });
});
var block = localStorage.getItem('display');
if (block == 'true') {
    $('#banner').hide()
}

我的html

代码语言:javascript
运行
复制
<div id="banner_container">
    <div id="banner">
        <img src="#">
    </div>
    <button id="button" href="javascript:void(0);"></button> <!-- toggle 'open' class if banner is visible / hidden and keep it in LocalStorage -->
</div> 

我尝试将toggleClass ( $(this).toggleClass('open'); )设置为slideToggle函数,但这似乎不是正确的方法,因为它与LocalStorage行为无关。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-30 08:54:43

通过切换“activeClass”或“打开”并检查它是否存在于文档加载上,解决了问题。

代码语言:javascript
运行
复制
$(document).ready(function() {
  $('#button').click(function() {
    $(this).siblings().slideToggle(function() {
      localStorage.setItem('display', $('#banner').is(':hidden'));
    });
  });
  var block = localStorage.getItem('display');
  if (block == 'true') {
    $('#banner').hide()
  }
});
$(document).ready(function() {
  $('#button').click(function() {
    $('#button').toggleClass('activeClass');
  });
});
$(document).ready(function() {
  if (!$('#banner').is(':hidden')) {
    $('#button').addClass('activeClass');
  } else if (!$('#banner').is(':visible')) {
    $('#button').removeClass('activeClass');
  }
});

JSFiddle:https://jsfiddle.net/fcewjh7a/17/

票数 0
EN

Stack Overflow用户

发布于 2016-03-29 20:57:32

将javascript封装在jquery文档中,就绪调用。您的问题是,隐藏横幅的javascript在DOM呈现横幅元素之前正在执行:

代码语言:javascript
运行
复制
$(document).ready(function() {
  $('#button').click(function () {
      $(this).siblings().slideToggle(function() {
      localStorage.setItem('display', $('#banner').is(':hidden'));
      });
  });
  var block = localStorage.getItem('display');
  if (block == 'true') {
      $('#banner').hide()
  }
});

小提琴:https://jsfiddle.net/fcewjh7a/3/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36289696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档