jquery 如何在本地存储中保存折叠状态?

dldeef67  于 2024-01-07  发布在  jQuery
关注(0)|答案(1)|浏览(165)

我有一个切换按钮,当点击按钮时,侧边栏将折叠,当再次点击切换按钮时,侧边栏将恢复正常。我想将状态保存在本地存储中,但我遇到了如何将状态保存在本地存储中的问题;我现在使用的方法不能保存状态。什么是正确的方法来存储状态在本地存储,以便当侧边栏折叠,页面重新加载,侧边栏还是会崩溃吗

  1. <div id="sidebar"
  2. class="c-sidebar c-sidebar-dark c-sidebar-fixed c-sidebar-sm-show sidebar" >
  3. <button id="header-toggler"
  4. class="c-sidebar-minimizer c-class-toggler header-toggler"
  5. type="button" data-target="_parent" data-class="c-sidebar-minimized">
  6. </button>
  7. <div class="c-sidebar-brand maximized">
  8. <img style="max-width: 100px;"
  9. src="{{asset('images/brand/logo-text-white.png') }}" alt="GhoCalls Logo">
  10. </div>
  11. <div class="c-sidebar-brand minimized">
  12. <img style="max-width: 56px;"
  13. class="p-1" src="{{asset('images/brand/logo-white.png') }}"
  14. alt="GhoCalls Logo">
  15. </div>
  16. <ul class="c-sidebar-nav">
  17. <li class="c-sidebar-nav-item">
  18. <a class="c-sidebar-nav-link" href="#">
  19. <div class="mr-4 icon">
  20. <i class="fas fa-tachometer-alt"></i>
  21. </div>
  22. Dashboard
  23. </a>
  24. </li>
  25. </ul>
  26. </div>

个字符

mm9b1k5b

mm9b1k5b1#

点击后更改类

在click事件中,类永远不会改变,因此if条件永远不会改变,因此localStorage永远不会改变。
localStorage.setItem的行之前添加一行更新类:

  1. headerToggle.addEventListener("click", function () {
  2. // NEW
  3. // SET STATE - UI
  4. sidebarArea.classList.toggle("c-sidebar-minimized");
  5. // SET STATE - localStorage
  6. if (sidebarArea.classList.contains("c-sidebar-minimized")) {
  7. localStorage.setItem("collapsed", "true");
  8. } else {
  9. localStorage.setItem("collapsed", "false");
  10. }
  11. });

字符串

展开查看全部

相关问题