Finden Sie Active Tab mit jQuery und Twitter Bootstrap
Lesezeit: 3 Minuten
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:
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.
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
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') );
});
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>
12993700cookie-checkFinden Sie Active Tab mit jQuery und Twitter Bootstrapyes