简体   繁体   English

Bootstrap 4-突出显示活动的nav-item / nav-link

[英]Bootstrap 4 - Highlight active nav-item/nav-link

I have a simple navigation bar in Bootstrap 4. I can't seem to get my jQuery code, even come close to add an "active" (class) to the nav-link class I click on. 我在Bootstrap 4中有一个简单的导航栏。我似乎无法获取我的jQuery代码,甚至无法将“活动”(类)添加到我单击的nav-link类中。

 <script> $(document).ready(function () { $('.nav-link').click(function() { $('.nav-item').removeClass('active'); $(this).addClass('active'); console.log("Clicked..."); }); }); </script> 
  <nav class="navbar navbar-expand-sm navbar-dark fixed-top bg-dark"> <a class="navbar-brand" href="/">MySite</a> <div class="collapse navbar-collapse" id="navbarCollapse"> <ul class="navbar-nav mr-auto"> <li class="nav-item"> <a class="nav-link" href="/menu1">Menu 1</a> </li> <li class="nav-item"> <a class="nav-link" href="/menu2">Menu 2</a> </li> </ul> </div> </nav> 

I think, the code would find active on the click event, and remove any active classes currently found, and add to the current nav-link class. 我认为,该代码将在click事件上处于活动状态,并删除当前找到的所有活动类,并添加到当前的nav-link类中。

Can anyone help and explain why the above code, does highlight the element but then loses it? 任何人都可以帮助并解释上面的代码为什么突出显示元素但又丢失了它吗? Is it because click occurs first, and then the page gets reloaded so any DOM changes are lost? 是因为首先发生单击,然后重新加载页面,所以所有DOM更改都丢失了吗?

Since I am using Go, I have to pass a variable to the template, let's say, "Title" and add "active" to the class if Title matches the page I am rendering, renderTemplate is a custom function that uses RiceBox, FYI. 由于我使用的是Go语言,因此我必须将一个变量传递给模板,例如,如果Title与我正在渲染的页面匹配,则将“ Title”并在类中添加“ active”,renderTemplate是使用RiceBox(仅供参考)的自定义函数。 I hope this helps someone: 我希望这可以帮助别人:

func HomeHandler(w http.ResponseWriter, r *http.Request) {
  varMap := map[string]interface{}{
    "Title": "Home",
  }

  renderTemplate(w, "templates/index.html", &varMap)
}

HTML/Template (eg header.html which is loaded in index.html: HTML /模板(例如,在index.html中加载的header.html:

<nav class="navbar navbar-expand-sm navbar-dark fixed-top bg-dark">
  <a class="navbar-brand" href="/">My Site</a>
    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item">
          <a class="nav-link {{ if eq .Title "Home" }}active{{ else }}{{ end }}" href="/">Home <span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
          <a class="nav-link {{ if eq .Title "Help" }}active{{ else }}{{ end }}" href="/help">Help</a>
        </li>
      </ul>
    </div>
</nav>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM