【问题标题】:Bootstrap navbar make clicked tab to be activeBootstrap 导航栏使单击的选项卡处于活动状态
【发布时间】:2014-04-18 10:58:34
【问题描述】:

我读过其他类似的帖子,但我无法让我的工作。 我想让点击的标签处于活动状态

这就是我的引导导航栏在 html 中的样子:

<div class="navbar navbar-default" role="navigation">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a href="/">
          <img src="/static/images/logo.png" alt="Prime Solutions"/>
        </a>
      </div>

      <div class="navbar-collapse collapse">
        <ul class="nav navbar-nav">
          <li class="active"><a href="/"><strong>Acasa</strong></a></li>
          <li><a href="/software"><strong>Software</strong></a></li>
          <li><a href="/hardware"><strong>Hardware</strong></a></li>
          <li><a href="/about"><strong>Despre Noi</strong></a></li>
          <li><a href="/contact"><strong>Contact</strong></a></li>
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown"><strong>Servicii</strong><b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="/servicii/servicii">Servicii IT&C </a></li>
              <li><a href="/servicii/consultanta">Consultanta IT&C </a></li>
              <li class="divider"></li>
              <li class="dropdown-header">Parteneri</li>
              <li><a href="/parteneri">Partenerii nostri</a></li>
            </ul>
          </li>
        </ul>
        <ul class="nav navbar-nav navbar-right">
          <li><a class="btn btn-info" href="/noutati"><span id="news">Noutati</span></a></li>
        </ul>
      </div><!--/.nav-collapse -->
    </div>
  </div>

但是,它不起作用。它只会让我的Acasa 标签保持活动状态。 我应该如何编写脚本?谢谢

这就是我的&lt;body&gt; 底部的样子:

<script src="/static/js/jquery.min.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
<script src="/static/js/jquery-1.11.0.js"></script>
<script>
  ....... 
</script>

这是我尝试过的脚本:

<script>
  $('.nav.navbar-nav > li').on('click', function() {
    $(this).addClass('active');
    $(this).siblings().removeClass('active');
  });    
</script>

编辑:

好的,所以我找出问题所在。 jQuery 可以工作,但是当我单击“软件”选项卡时,我会被重定向到 /software,因此,“软件”选项卡不会因为重定向而处于活动状态。这个导航栏出现在我的每个页面上。那么我该如何解决这个问题呢?

【问题讨论】:

  • 抱歉,已编辑。我的意思是写addClass。不过还是不行

标签: jquery html twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

你可以使用:

$('.nav.navbar-nav > li').on('click', function(e) {
    $('.nav.navbar-nav > li').removeClass('active');
    $(this).addClass('active');
});    

Bootply Demo

【讨论】:

  • 仍然无法工作...我已经编辑了我的帖子,看看我如何声明我的脚本
【解决方案2】:

在每个页面中使用此代码。

$(function() {
var loc = window.location.href;
   $(".navbar .navbar-nav > li").each(function() {
      if (loc.match('/software')) { // software is the name of the page/slug
        $(this).addClass("active"); 
        }
   });
});

或者,如果您的页面数量有限,您可以使用 'if else if 条件。

【讨论】:

  • 谢谢。无论如何,我通过在服务器端编写逻辑来解决它。我太专注于 jQuery 解决方案,无法意识到我可以在服务器端解决这个问题。
  • @Mihai Zamir 能否请您在服务器端发布修复它的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 2017-02-28
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多