HTML/Javascript/CSS 可折叠菜单在刷新时不会保持关闭状态

科琳

正如标题中所述,刷新页面时,我的可折叠菜单不会保持关闭状态。每次加载页面时,可折叠菜单都会完全展开,即使在刷新之前完全关闭也是如此。这有点问题,因为这个可折叠的东西很多。

这是它的基本代码:

CSS:

//some code here for the design, background color and stuff that shouldn't matter,
// .active is what I think I need

.active, .collapsible:hover{
background-color: #02538D;
}

HTML:

<button class="collapsible">Tutorials</button>
<div>
    <div class="content">
    <p>
      <?php
         //some php here for output of collapsible
      ?>
    </p>
    </div>

    <div class="content">
    <p>
       <?php>
         //some php here for output of collapsible
       ?>
    </p>
    </div>
</div>

JavaScript:

<script>
var coll = document.getElementsByClassName("collapsible");
var i;

for(i = 0; i< coll.length; i++) {
    coll[i].addEventListener("click", function() {
         this.classList.toggle("active");
         var content = this.nextElementSibling;
         if(content.style.display === "block") {
               content.style.display = "none";
         }
         else {
               content.style.display = "block";
         }
     });
}
</script>

我是 JavaScript 的初学者,所以我很确定这就是错误所在,但任何帮助都将不胜感激。非常感谢!

罗宾

在您提供的代码中,菜单的状态永远不会保存 - 因此当页面刷新时,一切都只是“重置”为默认值。

一种解决方案当然是使用 'display:none;' 作为 css 中的默认值。这将使菜单在页面刷新时隐藏,但如果您需要它在用户打开它的情况下在刷新之间保持可见,则问题将持续存在

在这种情况下,您可以在切换样式时使用 javascript 设置 cookie:

HTML

<button class="collapsible">Collapsible 1</button>
<div>
    <div class="menu-item">
    <p>Content 1</p>
    </div>

    <div class="menu-item">
    <p>Content 2</p>
    </div>
</div>

爪哇脚本

var coll = document.getElementsByClassName("collapsible");

for(i = 0; i< coll.length; i++) {
    var cookies = decodeURIComponent(document.cookie).split(";");
    for(i=0;i<cookies.length;i++) {
      if(cookies[i] == "menu-state=hide") {
                var content = coll[i].nextElementSibling;
        content.style.display = "none";
      }
    }
    coll[i].addEventListener("click", function() {
         var content = this.nextElementSibling;
         if(content.style.display === "block") {
               content.style.display = "none";
               document.cookie = "menu-state=hide";
         }
         else {
               content.style.display = "block";
               document.cookie = "menu-state=display";
         }
     });
} 

https://jsfiddle.net/hxcy1vLr/41/

上面的代码将检查是否存在名称和值为“menu-state=hide”的cookie。如果有,菜单最初将被隐藏。当您单击切换按钮时,此 cookie 将设置和更改。

关于 javascript 中的 cookie:https : //www.w3schools.com/js/js_cookies.asp

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使jQuery可折叠菜单栏保持展开状态

来自分类Dev

React.js:可折叠菜单不会返回原始状态

来自分类Dev

我的导航下拉菜单在悬停时不会保持打开状态

来自分类Dev

CSS下拉菜单在悬停时不会保持打开状态

来自分类Dev

我的导航下拉菜单在悬停时不会保持打开状态

来自分类Dev

CSS下拉菜单在悬停时不会保持打开状态

来自分类Dev

Bootstrap折叠的菜单在展开时不会向下推内容

来自分类Dev

打开下拉菜单时,Twitter Bootstrap关闭可折叠菜单吗?

来自分类Dev

为什么导航栏 Bootstrap 菜单在单击选项卡面板项时折叠关闭

来自分类Dev

Bootstrap 4导航栏/菜单在折叠时保持可见

来自分类Dev

固定菜单在关闭画布菜单打开时丢失其固定状态

来自分类Dev

固定菜单在关闭画布菜单打开时丢失其固定状态

来自分类Dev

刷新数据时,下拉菜单在ng-repeat中关闭

来自分类Dev

Bootstrap 3:可折叠的导航不会关闭

来自分类Dev

锁定菜单在滚动时略微关闭

来自分类Dev

回发后使可折叠Div保持打开状态

来自分类Dev

单击另一个菜单时,AdminLTE 3展开菜单不会关闭/折叠

来自分类Dev

当另一个打开时,如何使纯HTML-&-CSS可折叠面板保持打开状态?

来自分类Dev

使用击倒模板时,可折叠菜单中的jquery eventbinding

来自分类Dev

jQuery Mobile刷新可折叠

来自分类Dev

Html 可折叠不会在点击时展开

来自分类Dev

当我单击子页面时,如何使菜单保持折叠状态?

来自分类Dev

基于特定点击限制可折叠项目保持折叠状态

来自分类Dev

如何限制可折叠项保持展开状态,除非我单击其他可折叠项以展开,而不单击可折叠项本身

来自分类Dev

可折叠菜单,仅CSS

来自分类Dev

jquery中的可折叠菜单

来自分类Dev

JQM刷新可折叠集不刷新

来自分类Dev

Bootstrap可折叠Navbar不会折叠

来自分类Dev

仅CSS子菜单在鼠标移出时关闭

Related 相关文章

  1. 1

    使jQuery可折叠菜单栏保持展开状态

  2. 2

    React.js:可折叠菜单不会返回原始状态

  3. 3

    我的导航下拉菜单在悬停时不会保持打开状态

  4. 4

    CSS下拉菜单在悬停时不会保持打开状态

  5. 5

    我的导航下拉菜单在悬停时不会保持打开状态

  6. 6

    CSS下拉菜单在悬停时不会保持打开状态

  7. 7

    Bootstrap折叠的菜单在展开时不会向下推内容

  8. 8

    打开下拉菜单时,Twitter Bootstrap关闭可折叠菜单吗?

  9. 9

    为什么导航栏 Bootstrap 菜单在单击选项卡面板项时折叠关闭

  10. 10

    Bootstrap 4导航栏/菜单在折叠时保持可见

  11. 11

    固定菜单在关闭画布菜单打开时丢失其固定状态

  12. 12

    固定菜单在关闭画布菜单打开时丢失其固定状态

  13. 13

    刷新数据时,下拉菜单在ng-repeat中关闭

  14. 14

    Bootstrap 3:可折叠的导航不会关闭

  15. 15

    锁定菜单在滚动时略微关闭

  16. 16

    回发后使可折叠Div保持打开状态

  17. 17

    单击另一个菜单时,AdminLTE 3展开菜单不会关闭/折叠

  18. 18

    当另一个打开时,如何使纯HTML-&-CSS可折叠面板保持打开状态?

  19. 19

    使用击倒模板时,可折叠菜单中的jquery eventbinding

  20. 20

    jQuery Mobile刷新可折叠

  21. 21

    Html 可折叠不会在点击时展开

  22. 22

    当我单击子页面时,如何使菜单保持折叠状态?

  23. 23

    基于特定点击限制可折叠项目保持折叠状态

  24. 24

    如何限制可折叠项保持展开状态,除非我单击其他可折叠项以展开,而不单击可折叠项本身

  25. 25

    可折叠菜单,仅CSS

  26. 26

    jquery中的可折叠菜单

  27. 27

    JQM刷新可折叠集不刷新

  28. 28

    Bootstrap可折叠Navbar不会折叠

  29. 29

    仅CSS子菜单在鼠标移出时关闭

热门标签

归档