Finden Sie Active Tab mit jQuery und Twitter Bootstrap

Lesezeit: 3 Minuten

Benutzer-Avatar
William Orazi

Ich habe mir jetzt schon eine Weile den Kopf zerbrochen und würde gerne wissen, ob jemand da draußen weiß, wie ich den aktiven Tab finden kann, indem ich jQuery und Bootstrap von Twitter verwende. Das Abrufen des Hashs aus der URL ist nicht meine erste Option, ich verwende die data-toggle Attribut in der <a> Link, sodass kein URL-Hash erstellt werden muss.

Irgendeine Einsicht? Hier ist ein Beispiel für mein Markup:

<ul class="nav nav-list" id="sampleTabs">
    <li><a href="#example" data-toggle="tab">Tab 1</a></li>
</ul>
<div class="tab-content">
    <div class="tab-pane fade active in" id="example">
        Example Tab
    </div>
</div>

<script>
$('#sampleTabs a:first').tab('show');
</script>

Ich bin offen für jeden Vorschlag – mit einer PHP-Sitzung, einem JS-Cookie usw.

Edit: Das ist das eigentliche Problem. Ich habe ein Paginierungssystem, das PHP verwendet. Wenn also auf eine Seitenzahl oder einen Weiter-/Zurück-Pfeil geklickt wird, wird die Seite neu geladen. Aus diesem Grund muss ich die aktive Registerkarte finden, bevor ich die nächste Seite lade, da ich sie einfach in der URL oder Sitzung usw. übergebe.

Benutzer-Avatar
João Silva

Twitter Bootstrap weist die active Klasse zum li Element, das die aktive Registerkarte darstellt:

$("ul#sampleTabs li.active")

Eine Alternative ist die Bindung shown Ereignis jeder Registerkarte und speichern Sie die aktive Registerkarte:

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

  • Stimmt, aber ich verwende nicht ihre Standard-Tab-Navigation. Ich habe Links in einer Seitenleiste, die die nicht automatisch zuweisen active Klasse.

    – William Orazi

    20. August 2012 um 15:48 Uhr

  • @pennstate_fanboy: Kannst du die nicht benutzen shown Veranstaltung von tab() und prüfe e.target?

    – João Silva

    20. August 2012 um 15:54 Uhr

  • Ah ha! Danke, Sir, das ist genau das, was ich brauchte, das muss ich in den Dokumenten übersehen haben.

    – William Orazi

    20. August 2012 um 15:59 Uhr

  • @pennstate_fanboy: Gern geschehen, ich bin froh, dass ich helfen konnte, ich habe es schon einmal benutzt, das hat die Suche etwas eingegrenzt. 🙂

    – João Silva

    20. August 2012 um 16:00 Uhr

  • Es scheint, dass Bootstrap 3 ‘shown.bs.tab’ $(‘a[data-toggle=”tab”]’).on(‘shown.bs.tab’, function (e) { … }); getbootstrap.com/javascript/#tabs

    – Ken

    22. April 2014 um 14:06 Uhr


Benutzer-Avatar
Daniel Adenew

Hier ist die Antwort für diejenigen unter Ihnen, die eine Boostrap 3-Lösung benötigen.

Verwenden Sie in Bootstrap 3 in der nächsten Zeile ‘shown.bs.tab’ anstelle von ‘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') );
});

Benutzer-Avatar
Abdelrahman Aly

Zuerst müssen Sie die entfernen Datenumschaltung Attribut. Wir werden etwas JQuery verwenden, stellen Sie also sicher, dass Sie es einschließen.

  <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>

1299370cookie-checkFinden Sie Active Tab mit jQuery und Twitter Bootstrap

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy