2017-01-10 2 views
0

Я не могу показаться, чтобы получить активный класс, чтобы перейти к соответствующему выбранному элементу (см код сильфон)Активный класс динамика в закладках бутстраповских

Так что я хотел бы активный класс меняться в зависимости от выбранного 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(); 
}); 
+1

Где ваш 'myTab' элемент в разметке? – nashcheez

+0

@nashcheez Он хочет сказать '# tab1 # tab2 # tab3' – Bharat

ответ

2

Попробуйте использовать следующий код: jQuery

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

jsfiddle ссылка: https://jsfiddle.net/nashcheez/m1mbp9ke/

+0

Извините, активный класс все еще статический не динамический –

+0

нет, первый остается активным, я нажимаю дозу, не включаю активную –

+0

@BenjaminOats Была проблема с' this 'ссылка. Теперь это должно сработать точно! :) – nashcheez

0

Попробуйте удалить active класс первого использования $('.active').removeClass('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>

+0

это странно, другие вкладки активируются на моей странице, но изображения все еще не меняются. –

+0

@BenjaminOats, нет ничего странного. Вы запустили фрагмент, чтобы увидеть его в действии. Код работает. Активный класс добавляется к элементу с классом «thumbnail» каждый раз, когда вы нажимаете на изображение, а класс «active» удаляется из предыдущего активного элемента. – Ionut

+0

Да, я согласен, что ваш код работает. im, говорящий на моей странице, у меня есть другие вкладки, которые работают с вашим кодом, но не табуляции, которые я пытаюсь запустить. Я говорю, что на моей странице все, что мне нужно, нужно исправить –

Смежные вопросы