Найти активную вкладку с помощью jQuery и Twitter Bootstrap


Я уже некоторое время ломаю голову, и я хотел бы знать, знает ли кто-нибудь, как я могу найти активную вкладку, используя jQuery и Bootstrap Twitter. Потянуть хэш из URL-адреса, это не мой первый вариант, я использую

3 51

3 ответа:

Twitter Bootstrap присваивает active класс li элемент, представляющий активную вкладку:

$("ul#sampleTabs li.active")

альтернативой является привязка shown событие каждой вкладки и сохраните активную вкладку:

var activeTab = null;
$('a[data-toggle="tab"]').on('shown', function (e) {
  activeTab = e.target;
})

вот ответ для тех из вас, кто нуждается в Boostarp 3 решение.

в bootstrap 3 Используйте 'shown.bs. tab' вместо 'shown' в следующей строке

// tab
$('#rowTab a:first').tab('show');

$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
//show selected tab / active
 console.log ( $(e.target).attr('id') );
});

прежде всего вам нужно удалить data-toggle. Мы будем использовать некоторые JQuery, поэтому убедитесь, что вы включили его.

  <ul class='nav nav-tabs'>
    <li class='active'><a href='#home'>Home</a></li>
    <li><a href='#menu1'>Menu 1</a></li>
    <li><a href='#menu2'>Menu 2</a></li>
    <li><a href='#menu3'>Menu 3</a></li>
  </ul>

  <div class='tab-content'>
    <div id='home' class='tab-pane fade in active'>
      <h3>HOME</h3>
    <div id='menu1' class='tab-pane fade'>
      <h3>Menu 1</h3>
    </div>
    <div id='menu2' class='tab-pane fade'>
      <h3>Menu 2</h3>
    </div>
    <div id='menu3' class='tab-pane fade'>
      <h3>Menu 3</h3>
    </div>
  </div>
</div>

<script>
$(document).ready(function(){
// Handling data-toggle manually
    $('.nav-tabs a').click(function(){
        $(this).tab('show');
    });
// The on tab shown event
    $('.nav-tabs a').on('shown.bs.tab', function (e) {
        alert('Hello from the other siiiiiide!');
        var current_tab = e.target;
        var previous_tab = e.relatedTarget;
    });
});
</script>