Ik heb de volgende code:
<ul class="nav nav-tabs">
<li><a href="#aaa" data-toggle="tab">AAA</a></li>
<li><a href="#bbb" data-toggle="tab">BBB</a></li>
<li><a href="#ccc" data-toggle="tab">CCC</a></li>
</ul>
<div class="tab-content" id="tabs">
<div class="tab-pane" id="aaa">...Content...</div>
<div class="tab-pane" id="bbb">...Content...</div>
<div class="tab-pane" id="ccc">...Content...</div>
</div>
En het volgende script:
$(document).ready(function(){
activaTab('aaa');
});
function activaTab(tab){
$('.tab-pane a[href="#' + tab + '"]').tab('show');
};
In dit geval, wanneer de pagina gereed is, wordt het tweede tabblad geactiveerd, maar ik krijg altijd een JavaScript-fout in de regel $('.tab-pane a[href="#' + tab + '"]').tab();
Kan iemand me alsjeblieft helpen?
Antwoord 1, autoriteit 100%
Het toepassen van een selector uit de .nav-tabs
lijkt te werken:
Zie deze demo.
$(document).ready(function(){
activaTab('aaa');
});
function activaTab(tab){
$('.nav-tabs a[href="#' + tab + '"]').tab('show');
};
Ik heb liever het antwoord van @codedme, want als je weet welk tabblad je wilt voordat de pagina wordt geladen, moet je waarschijnlijk de pagina-html wijzigen en JS niet gebruiken voor deze specifieke taak.
Ik heb ook de demoaangepast voor zijn antwoord.
(Als dit niet werkt, specificeer dan uw instelling – browser, omgeving, enz.)
Antwoord 2, autoriteit 13%
Klik op de link naar het tabbladanker wanneer de pagina gereed is, bijv.
$('a[href="' + window.location.hash + '"]').trigger('click');
Of in vanille JavaScript
document.querySelector('a[href="' + window.location.hash + '"]').click();
Antwoord 3, autoriteit 12%
Deze is vrij eenvoudig van w3schools: https://www.w3schools.com/bootstrap/ bootstrap_ref_js_tab.asp
// Select tab by name
$('.nav-tabs a[href="#home"]').tab('show')
// Select first tab
$('.nav-tabs a:first').tab('show')
// Select last tab
$('.nav-tabs a:last').tab('show')
// Select fourth tab (zero-based)
$('.nav-tabs li:eq(3) a').tab('show')
Antwoord 4, autoriteit 6%
<div class="tabbable">
<ul class="nav nav-tabs">
<li class="active"><a href="#aaa" data-toggle="tab">AAA</a></li>
<li><a href="#bbb" data-toggle="tab">BBB</a></li>
<li><a href="#ccc" data-toggle="tab">CCC</a></li>
</ul>
<div class="tab-content" id="tabs">
<div class="tab-pane fade active in" id="aaa">...Content...</div>
<div class="tab-pane" id="bbb">...Content...</div>
<div class="tab-pane" id="ccc">...Content...</div>
</div>
</div>
Voeg actieve klasse toe aan elk li-element dat u actief wilt hebben na het laden van de pagina.
En ook het toevoegen van actieve klasse aan inhoud div is nodig, fade-in klassen zijn handig voor een soepele overgang.