J'essaie de garder l'onglet sélectionné actif lors de l'actualisation avec Bootstrap 3 . Essayé et vérifié avec une question déjà posée ici, mais aucun travail pour moi. Je ne sais pas où je me trompe. Voici mon code
HTML
<!-- tabs link -->
<ul class="nav nav-tabs" id="rowTab">
<li class="active"><a href="#personal-info" data-toggle="tab">Personal Information</a></li>
<li><a href="#Employment-info" data-toggle="tab">Employment Information</a></li>
<li><a href="#career-path" data-toggle="tab">Career Path</a></li>
<li><a href="#warnings" data-toggle="tab">Warning</a></li>
</ul>
<!-- end: tabs link -->
<div class="tab-content">
<div class="tab-pane active" id="personal-info">
tab data here...
</div>
<div class="tab-pane" id="Employment-info">
tab data here...
</div>
<div class="tab-pane" id="career-path">
tab data here...
</div>
<div class="tab-pane" id="warnings">
tab data here...
</div>
</div>
Javascript :
// tab
$('#rowTab a:first').tab('show');
//for bootstrap 3 use 'shown.bs.tab' instead of 'shown' in the next line
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
//save the latest tab; use cookies if you like 'em better:
localStorage.setItem('selectedTab', $(e.target).attr('id'));
});
//go to the latest tab, if it exists:
var selectedTab = localStorage.getItem('selectedTab');
if (selectedTab) {
$('#'+selectedTab).tab('show');
}
jquery
twitter-bootstrap
tabs
twitter-bootstrap-3
Amoureux du code
la source
la source
console.log("selectedTab::"+selectedTab);
, je suis arrivé:selectedTab::undefined
. Donc la logique que vous avez appliquée n'est pas correcteRéponses:
Je préfère stocker l'onglet sélectionné dans la valeur de hachage de la fenêtre. Cela permet également d'envoyer des liens à des collègues, qui voient alors «la même» page. L'astuce consiste à changer le hachage de l'emplacement lorsqu'un autre onglet est sélectionné. Si vous utilisez déjà # dans votre page, la balise de hachage doit peut-être être divisée. Dans mon application, j'utilise ":" comme séparateur de valeur de hachage.
JavaScript, doit être intégré après ce qui précède dans une
<script>...</script>
partie.la source
e.preventDefault();
et$(this).tab('show');
C'est le meilleur que j'ai essayé:
la source
"a[data-toggle=tab]"
serait mieux. La façon dont le sélecteur est maintenant écrit change également l'URL du navigateur lorsque vous cliquez sur un lien pour ouvrir par exemple un modal.data-toggle="dropdown"
et que j'ai sur la même page avec des onglets dans un cas. Comme quelqu'un l'a suggéré ici, le simple remplacement$(document.body).on("click", "a[data-toggle]", function(event) {
par a$(document.body).on("click", "a[data-toggle='tab']", function(event) {
fait l'affaire pour moi.Un mélange entre les autres réponses:
Copiez et collez simplement;)
la source
Le code de Xavi fonctionnait presque entièrement. Mais lors de la navigation vers une autre page, soumettre un formulaire, puis être redirigé vers la page avec mes onglets ne chargeait pas du tout l'onglet enregistré.
localStorage à la rescousse (code de Nguyen légèrement modifié):
la source
[data-toggle="pill"]
pour les pilulesCelui-ci utilise HTML5
localStorage
pour stocker l'onglet actifréf: http://www.tutorialrepublic.com/faq/how-to-keep-the-current-tab-active-on-page-reload-in-bootstrap.php https://www.w3schools.com/bootstrap /bootstrap_ref_js_tab.asp
la source
En me basant sur les réponses fournies par Xavi Martínez et koppor, j'ai trouvé une solution qui utilise le hachage d'url ou localStorage en fonction de la disponibilité de ce dernier:
Usage:
Il ne suit pas le bouton de retour comme c'est le cas pour la solution de Xavi Martínez .
la source
Mon code, ça marche pour moi, j'utilise
localStorage
HTML5la source
J'ai essayé et il fonctionne: (S'il vous plaît remplacer ce avec la pilule ou un onglet que vous utilisez)
J'espère que cela aiderait quelqu'un.
Voici le résultat: https://jsfiddle.net/neilbannet/ego1ncr5/5/
la source
Eh bien, c'est déjà en 2018 mais je pense qu'il vaut mieux tard que jamais (comme un titre dans une émission télévisée), lol. Voici le code jQuery que j'ai créé lors de ma thèse.
et voici le code pour les onglets bootstrap:
voici des codes rapides pour vous:
Passons maintenant à l'explication:
Vous recherchez des exemples? en voici un pour vous les gars .. https://jsfiddle.net/Wineson123/brseabdr/
Je souhaite que ma réponse puisse vous aider tous .. Cheerio! :)
la source
Comme je ne peux pas encore commenter, j'ai copié la réponse ci-dessus, cela m'a vraiment aidé. Mais je l'ai changé pour qu'il fonctionne avec des cookies au lieu de #id donc je voulais partager les modifications. Cela permet de stocker l'onglet actif plus longtemps qu'une seule actualisation (par exemple, une redirection multiple) ou lorsque l'id est déjà utilisé et que vous ne voulez pas implémenter la méthode de fractionnement de koppors.
la source
J'ai essayé le code proposé par Xavi Martínez . Cela a fonctionné mais pas pour IE7. Le problème est que les onglets ne font référence à aucun contenu pertinent.
Donc, je préfère ce code pour résoudre ce problème.
la source
Merci d'avoir partagé.
En lisant toutes les solutions. J'ai proposé une solution qui utilise le hachage d'url ou localStorage en fonction de la disponibilité de ce dernier avec le code ci-dessous:
la source
Pour Bootstrap v4.3.1. Essayez ci-dessous:
la source
En utilisant html5, j'ai concocté celui-ci:
Quelque part sur la page:
Le viewbag doit juste contenir l'identifiant de la page / de l'élément, par exemple: "testing"
J'ai créé un site.js et ajouté le script sur la page:
Maintenant, tout ce que vous avez à faire est d'ajouter vos identifiants à votre barre de navigation. Par exemple.:
Tous saluent l'attribut data :)
la source
En plus de la réponse de Xavi Martínez en évitant le saut au clic
Éviter le saut
Onglets imbriqués
implémentation avec le caractère "_" comme séparateur
la source
Nous avons utilisé le déclencheur jquery pour charger un script d'appuyer sur le bouton pour nous
$ (". nom_classe"). trigger ('clic');
la source
Malheur, il y a tellement de façons de faire ça. Je suis venu avec ceci, court et simple. J'espère que cela aidera les autres.
la source
la source