【问题标题】:How to prevent bootstrap from automatically adding class='active'?如何防止引导程序自动添加 class='active'?
【发布时间】:2013-11-25 09:39:36
【问题描述】:

我使用 Bootstrap 的选项卡控件,但 Bootstrap 会自动在第一个 li 项目上设置 class="active"。我怎样才能禁用它?在我的代码中,我想自己处理 li 项目获取活动类。

现在我处于两个选项卡处于活动状态的情况,显然我不想要这个。

我正在使用 Bootstrap v3.0.2

HTML:

<ul class="nav nav-tabs">
    <li data-ng-class="{'active': isTabVisible('elements')}">
        <a href="javascript:void(0)" data-ng-click="toggleTab('details')">@Resources.Building.Details</a>
    </li>
    <li data-ng-repeat="category in categories">
        <a href="javascript:void(0)" data-ng-click="toggleTab(category.Id)">{{category.Name}}</a>
    </li>
    <li data-ng-class="{'active': isTabVisible('elements')}">
        <a href="javascript:void(0)" data-ng-click="toggleTab('elements')" data-ng-show="current.Id > 0">@Resources.Building.Elements</a>
    </li>
</ul>

角度控制器:

$scope.currentTab = 'details';

// Check for a second # in the url
var parts = window.location.hash.split('#');
if (parts.length > 1) {
    var hash = parts[2];
    $scope.currentTab = hash;
};

$scope.isTabVisible = function (categoryId) {
    return $scope.currentTab == categoryId;
}

$scope.toggleTab = function (categoryId) {
    $scope.currentTab = categoryId;
}

【问题讨论】:

  • 请分享您的代码?
  • @rab:我已经用一些代码更新了我的帖子
  • 好像Angular 代码

标签: javascript angularjs twitter-bootstrap


【解决方案1】:

我知道这是一个非常古老的问题,但由于它是谷歌结果的顶部,我将把这个答案放在这里......

bootstrap 文档说 Add data-toggle="button" to toggle a button’s active state. 从父元素中删除 data-toggle 属性会导致相反的结果,阻止 bootstrap 将“活动”添加到单击的按钮。

【讨论】:

  • 找到有效答案需要 2 小时,谢谢!
【解决方案2】:

我使用 AngularJS 和 AngularUI。它看起来很漂亮,直到您只需要在 angular-ui 中修改一些简单的东西。我的建议:不要浪费你的时间试图理解一个不是为了调整而设计的代码。例如:在 angular-ui 中,如果您使用轮播并且想要隐藏箭头,则必须重载 CSS,没有像 $scope.opts = [showArrows: false] 这样的选项。

可能最好自己编写指令或谷歌。为标签编写代码并不难。

【讨论】:

    【解决方案3】:

    您使用的是 Bootstrap JS 文件吗?这些负责添加和删除某些 CSS 代码。

    如果你想自己控制这一切,我建议你删除 Bootstrap JS 文件并使用 AngularJS 重写你需要它做的任何事情(就像你目前正在使用的那样)。

    然而,这会让你失去一些功能。有一些为 AngularJS 重写的 Bootstrap 版本,比如模态。

    但是,如果您需要某些自定义功能或对元素进行控制,则必须以任何一种方式重写或覆盖某些部分。

    【讨论】:

      猜你喜欢
      • 2011-06-18
      • 2021-07-11
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 2015-03-14
      相关资源
      最近更新 更多