【问题标题】:Keep active pill on refresh, Bootstrap 4保持活跃的药丸刷新,Bootstrap 4
【发布时间】:2020-06-29 21:05:04
【问题描述】:

我正在使用 Bootstrap 4 创建一个网站,对于我的导航栏,我正在为我的按钮使用药丸。我要解决的问题是,如果我在不同的选项卡上并刷新页面,它会跳回主页。对于那些使用标签而不是药片的人,我已经看到了许多解决方案。这是其他人通常为此类问题提供的我的代码的 sn-p:

<div class="collapse navbar-collapse" id="navbarResponsive">
  <ul class="nav nav-pills navbar-nav ml-auto" id="pills-tab" role="tablist">
    <li class="nav-item">
      <a class="nav-link active" id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Home</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" id="pills-education-tab" data-toggle="pill" href="#pills-education" role="tab" aria-controls="pills-education" aria-selected="false">Education</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" id="pills-skills-tab" data-toggle="pill" href="#pills-skills" role="tab" aria-controls="pills-skills" aria-selected="false">Skills</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" id="pills-activities-tab" data-toggle="pill" href="#pills-activities" role="tab" aria-controls="pills-activities" aria-selected="false">Activities</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" id="pills-projects-tab" data-toggle="pill" href="#pills-projects" role="tab" aria-controls="pills-projects" aria-selected="false">Projects</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" id="pills-contact-tab" data-toggle="pill" href="#pills-contact" role="tab" aria-controls="pills-contact" aria-selected="false">Contact</a>
    </li>
  </ul>
</div>

如果你们中的某个人能帮助解决这个问题,我们将不胜感激......提前致谢!

【问题讨论】:

    标签: javascript html bootstrap-4 web-site-project nav-pills


    【解决方案1】:
    <a class="nav-link active" id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true">Home</a>
    

    您的 html 通过将“活动”类放在第一个药丸中来指定初始活动选项卡。单击该按钮后,bootstrap 会处理关闭该类并将其添加到新药丸中。

    当点击切换药丸的链接之一时,您需要设置 onClick 函数。该函数应该设置一个 cookie 或使用本地存储来记录哪个药丸是最晚获得“活动”类的。

    <a class="nav-link" id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-selected="true" onClick="return saveTabSelect(this);">Home</a>
    

    这告诉链接点击调用函数来存储设置

    function saveTabSelect(e) {
      localStorage.setItem("tagSelected", e.id);
      return true;
    }
    

    您需要具有在页面加载上运行的函数,该函数在查找 cookie 或本地存储中,然后将活动类分配给指定的选项卡/药丸,或者如果未找到任何设置,则默认为任何设置。由于脚本会分配该类,因此您希望将其从 html 本身中提取出来。

    function retrieveSelected(){
      var curTag = localStorage.getItem("tagSelected");
      var element = document.getElementById(curTag);
      element.classList.add("active"); 
    }
    

    【讨论】:

    • @DynastySponge 任何关于如何做到这一点的建议将不胜感激!
    • 这两个函数会进入我头部的 吗?
    • 这是一个放置它们的地方..也可以将脚本标签放在正文部分..或用 标签引用的外部 .js 文件...听起来你没有做了很多 javascript web 开发。如需快速了解脚本的放置位置:w3schools.com/js/js_whereto.asp。要快速开始调用事件函数:w3schools.com/js/js_events.asp。对于不同 DOM 事件的快速入门:w3schools.com/jsref/dom_obj_event.asp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多