【问题标题】:addClass active to bootstrap navaddClass 激活到引导导航
【发布时间】:2015-03-17 16:04:51
【问题描述】:

目前,在 bootstrap3 nav 下拉菜单等中。

 <ul class="nav navbar-nav navbar-right">
    <li><a href="#">Link</a></li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Dropdown <span class="caret"></span></a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Here's My Fancy St. Patties Day link!</a></li>
        <li><a href="#">Another link</a></li>
        <li><a href="#">Something else entirely here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </li>
  </ul>

我通过 .active css 突出显示导航菜单项,并使用简单的 jquery addClass 到父元素:

$('a[href="' + this.location.pathname + '"]').parent().addClass('active');

然后当一个在所述页面上时,这会突出显示相应的菜单项。

我的问题是,我如何将类添加到容器''(li > ul > li 等)?我一直在堆叠 .parent() 标签试图找到它,但运气不好。

编辑:

我认为这样的事情会将活动类添加到容器中 li class='dropdown':

$('a[href="' + this.location.pathname + '"]').parent().addClass('active');
$('li a[href="' + this.location.pathname + '"]').parent().eq(1).addClass('active');

.. 使用 .parent().eq(),但还是没用!

【问题讨论】:

  • 您要在哪个元素上添加活动?在ali?
  • .parentsUntil() 应该可以帮助您,如果您只是将.active 添加到所有元素,无论如何
  • 与其链接多个.parent()方法,不如使用.closest()-api.jquery.com/closest$('a[href="' + this.location.pathname + '"]').closest('.dropdown').addClass('active');方法
  • 在那个容器
  • 是吗?
  • 标签: javascript jquery html css twitter-bootstrap


    【解决方案1】:

    遍历到最近的.dropdown

    $('a[href="' + this.location.pathname + '"]').closest('.dropdown').addClass('active');
    

    【讨论】:

      【解决方案2】:

      你可以使用closest选择器:

      $('a[href="' + this.location.pathname + '"]').closest('.dropdown')
      

      【讨论】:

        【解决方案3】:
        $('a[href="' + this.location.pathname + '"]').parent().addClass('active');
        $('a[href="' + this.location.pathname + '"]').parent().siblings().removeClass('active');
        

        这样也可以从其他兄弟姐妹中删除类。

        【讨论】:

          【解决方案4】:

          想通了:

          $('a[href="' + this.location.pathname + '"]').parent().addClass('active');//get the menu item
          $('a[href="' + this.location.pathname + '"]').parents('li').last().addClass('active'); //get the parent
          

          谢谢大家.. 用 .eq(1) 遍历它似乎也没有找到它.. 我需要研究'为什么'!

          【讨论】:

            猜你喜欢
            相关资源
            最近更新 更多
            热门标签