Von einer anderen Registerkarte mit den Navigationsregistern von Bootstrap zu einer bestimmten Registerkarte springen
Ich benutze Bootstrapsnav-tabs
mit folgendem Setup:
<ul class="nav nav-tabs">
<li class="active"><a href="#home" data-toggle="tab">Home</a></li>
<li><a href="#profile" data-toggle="tab">Profile</a></li>
</ul>
<div id="tabContent" class="tab-content">
<div class="tab-pane active in" id="home">
<form id="tab">
<label>Name:</label>
<input type="text" value="fooBar" class="input-xlarge">
</form>
</div>
<div class="tab-pane fade" id="profile">
<form id="tab2">
<a href="#home">Home</a>
</form>
</div>
</div>
Wie Sie sehen können, habe ich einen Link in meinemprofile
Registerkarte, die auf die erste Registerkarte verweist. Durch Klicken auf den Anker wird die URL in der URL-Leiste geändert, es wird jedoch nicht zur jeweiligen Registerkarte gesprungen.
Ich bemerkte dann, dass es im Allgemeinen nicht möglich ist, direkt auf einen Tab zu verlinken, also habe ich den folgenden Code von hinzugefügtTwitter-Bootstrap-Registerkarten: Wechseln Sie auf der Registerkarte "Seite neu laden" oder "Hyperlink" zur Registerkarte "Bestimmte":
// Javascript to enable link to tab
var url = document.location.toString();
if (url.match('#')) {
$('.nav-tabs a[href=#'+url.split('#')[1]+']').tab('show') ;
}
// Change hash for page-reload
$('.nav-tabs a').on('shown', function (e) {
window.location.hash = e.target.hash;
})
Jetzt kann ich von einer anderen Stelle aus auf eine bestimmte Registerkarte verlinken, aber nicht, wenn ich mich auf derselben Seite befinde, auf der sich die Navigationsleiste befindet. Das Neuladen der Seite würde dann zum gewünschten Tab springen, sodass ich dachte, ich könnte die Seite mit der Lösung von nur mit Gewalt neu ladenJavascript: Wie kann man eine Site mit einem Ankertag wirklich neu laden?:
window.location.reload(true);
Dies führte jedoch jedes Mal zu einem Reload, wenn ich auf einen Tab klickte, außerdem wurde der nicht geladenhome
Tab, wenn Sie auf den Anker klicken.
Also, wie würde ich zu einem bestimmten springenid
von einer anderen Registerkarte?