【问题标题】:Active class dynamic in bootstrap tabs引导选项卡中的活动类动态
【发布时间】:2017-01-10 09:49:33
【问题描述】:

我似乎无法让活动类更改为选定的相应项目(请参见下面的代码)

所以我希望根据所选的thumbnail 更改活动类。

html

 <h2 class="">title</h2>

   <div class="row text-center advice-bar" id="myTab">
        <div class="col-md-3 overlord-thumbnail">
            <div class="thumbnail thumbnail-yellow active">
                <a href="#tab1" data-toggle="tab">
                    <img src="<?php bloginfo('url'); ?>/wp-content/uploads/2017/01/antenna.svg">
                </a>
            </div>
                <h3>one</h3>

                <p>text</p>
        </div>

        <div class="col-md-3 overlord-thumbnail">
            <div class=" thumbnail thumbnail-blue">
                <a href="#tab2" data-toggle="tab">
                    <img src="<?php bloginfo('url'); ?>/wp-content/uploads/2017/01/bar-chart.svg">
                </a>
            </div>
                <h3>two</h3>

                <p>Text</p>
        </div>

        <div class="col-md-3 overlord-thumbnail">
            <div class=" thumbnail thumbnail-red">
                <a href="#tab3" data-toggle="tab">
                    <img src="<?php bloginfo('url'); ?>/wp-content/uploads/2017/01/app.svg">
                </a>
            </div>
                <h3>Three</h3>

                <p>Text</p>
        </div>

        <div class="col-md-3 overlord-thumbnail">
            <div class=" thumbnail thumbnail-green">
                <a href="#tab4" data-toggle="tab">
                    <img src="<?php bloginfo('url'); ?>/wp-content/uploads/2017/01/speech-bubbles.svg">
                </a>
            </div>
                <h3>Foure</h3>

                <p>text</p>
        </div>
    </div>

JavaScript

$('#myTab a').click(function(e) {
    var $this = $(this);
    $this.parent().siblings().removeClass('active').end().addClass('active');
    e.preventDefault();
});

【问题讨论】:

  • 你的 myTab 元素在你的标记中在哪里?
  • @nashcheez 他的意思是说#tab1 #tab2 #tab3

标签: javascript jquery twitter-bootstrap tabs


【解决方案1】:

尝试使用以下jQuery 代码:

 $('#myTab a').click(function(e) {
    $($('#myTab a').parent()).addClass("active").not(this.parentNode).removeClass("active");   
    e.preventDefault();
 });

jsfiddle 链接:https://jsfiddle.net/nashcheez/m1mbp9ke/

【讨论】:

  • 抱歉活动类仍然是静态的而不是动态的
  • 不,第一个保持活动状态,新的我点击后不会变为活动状态
  • @BenjaminOats this 参考存在问题。现在它应该可以肯定地工作了! :)
  • 嗯还是不行,我要调查到底是怎么回事
  • 我觉得我的页面有些奇怪,我先解决这个问题
【解决方案2】:

尝试首先使用$('.active').removeClass('active'); 删除active 类,然后将addClass() 更改为像这样添加$this.parent().addClass('active');(这会将活动类添加到当前单击元素的父级,在本例中为元素thumbnail 类)。试试这个:

$('#myTab  a').on('click', function(e) {
  e.preventDefault();
  var $this = $(this);
  $('.active').removeClass('active');
  $this.parent().addClass('active');
});
img {
  width: 100px;
}
.active {
  border: 1px solid #F00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h2 class="">title</h2>

<div class="row text-center advice-bar" id="myTab">
  <div class="col-md-3 overlord-thumbnail">
    <div class="thumbnail thumbnail-yellow active">
      <a href="#tab1" data-toggle="tab">
                    <img src="https://static.pexels.com/photos/1562/italian-landscape-mountains-nature.jpg">
                </a>
    </div>
    <h3>one</h3>

    <p>text</p>
  </div>

  <div class="col-md-3 overlord-thumbnail">
    <div class=" thumbnail thumbnail-blue">
      <a href="#tab2" data-toggle="tab">
                    <img src="https://static.pexels.com/photos/1562/italian-landscape-mountains-nature.jpg">
                </a>
    </div>
    <h3>two</h3>

    <p>Text</p>
  </div>

  <div class="col-md-3 overlord-thumbnail">
    <div class=" thumbnail thumbnail-red">
      <a href="#tab3" data-toggle="tab">
                    <img src="https://static.pexels.com/photos/1562/italian-landscape-mountains-nature.jpg">
                </a>
    </div>
    <h3>Three</h3>

    <p>Text</p>
  </div>

  <div class="col-md-3 overlord-thumbnail">
    <div class=" thumbnail thumbnail-green">
      <a href="#tab4" data-toggle="tab">
                    <img src="https://static.pexels.com/photos/1562/italian-landscape-mountains-nature.jpg">
                </a>
    </div>
    <h3>Foure</h3>

    <p>text</p>
  </div>
</div>

【讨论】:

  • 这很奇怪,我的页面上激活了其他选项卡,但图像仍然没有改变状态
  • @BenjaminOats,没什么奇怪的。您是否运行了 sn-p 以查看它的运行情况。该代码有效。每次点击图片时,在带有thumbnail 类的元素上添加活动类,并从前一个活动元素中删除active 类。
  • 是的,我同意您的代码有效。我在我的页面上说我有其他选项卡正在运行您的代码,但没有我尝试运行的选项卡。我是说我的页面上出现了一些问题,我需要先修复
猜你喜欢
  • 2016-10-22
  • 1970-01-01
  • 2017-06-19
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 1970-01-01
相关资源
最近更新 更多