首页 > 解决方案 > 如何在重新加载 Bootstrap 5 时保存折叠状态

问题描述

我是引导程序和 javascript 的新手。如何保存折叠状态以使状态保持页面刷新?

<p>
  <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
    Collapse Button
  </button>
</p>
<div class="collapse" id="collapseExample">
  <div class="card card-body">
    Makers Academy engineering project has commenced. We have had a great experience so far with rails and now feel like we are getting to grips with the more complicated aspects. This guide is a quick introduction into adding likes to posts.
  </div>
</div>

而我的 Javascript 尝试不起作用。

$(document).ready(function () {
    $(".collapse").on("shown.bs.collapse", function () {
        localStorage.setItem("coll_" + this.id, true);
    });

    $(".collapse").on("hidden.bs.collapse", function () {
        localStorage.removeItem("coll_" + this.id);
    });
    
    $(".collapse").each(function () {
        if (localStorage.getItem("coll_" + this.id) === "true") {
            $(this).collapse("show");
        }
        else {
            $(this).collapse("hide");
        }
    });
});

标签: javascriptbootstrap-5

解决方案


它确实有效 - 见这个小提琴

我看到你正在使用$符号 - 所以你也需要加载 jQuery。确保它之前加载bootstrap.js


推荐阅读