Bootstrap 3: Conserver à l'onglet sélectionné sur l'actualisation de la page
Je suis en train de conserver la sélection de l'onglet actif sur actualiser avec Bootstrap 3. Essayé et vérifié avec quelques question a déjà été posée ici, mais aucun de travailler pour moi. 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');
}
- La raison pour laquelle il n'est pas le travail, c'est parce que , ce n'est pas le stockage de l'onglet sélectionné. Quand j'ai fait
console.log("selectedTab::"+selectedTab);
, j'ai eu :selectedTab::undefined
. Ainsi, la logique vous avez appliqué n'est pas correct - Donc, pouvez-vous svp me guider que faire?
- Je suis en train de le fixer. Si je le fais, je vais poster la réponse ici pour vous
- J'apprécie le fait que.. merci de votre aide..
- Je pense que cela va fonctionner : jsbin.com/UNuYoHE/2/edit . Si elle ne me le faire savoir, alors je vais poster la réponse dans un croustillant manière. Vous pouvez aussi envie de regarder la div onglet textes. ils ne donnent pas la bonne réponse lorsque vous cliquez sur eux. Par exemple, si vous cliquez sur tab4, vous obtenez tab1 texte.
- BTW , j'ai utilisé cette solution pour le JS de codage : stackoverflow.com/questions/9529723/...
- Merci, il n'est pas de travail et revenir à la premier onglet. Oui, j'ai arbitré cette réponse..mais ne fonctionne pas.. 🙁
- Le sélecteur pour bootstrap3 devrait être
$("ul.nav-tabs > li > a")
. Je suis d'accord que l'actuel sélecteur fonctionne également. Cependant, la bootstrap3 doc prévoitdata-toggle="tab"
plus. - La question est un double de la stackoverflow.com/q/10523433/873282
- mais cette réponse n'a pas aidé du tout
Vous devez vous connecter pour publier un commentaire.
Je préfère le stockage de l'onglet sélectionné dans le hashvalue de la fenêtre. Cela permet également à l'envoi de liens vers des collègues, que de voir "la même" page. L'astuce consiste à changer la valeur de hachage de l'emplacement lorsqu'un onglet est sélectionné. Si vous utilisez déjà # dans votre page, peut-être le hash tag doit être scindé. Dans mon application, j'utilise ":" tant que la valeur de hachage de séparateur.
JavaScript, doit être intégré après le ci-dessus dans un
<script>...</script>
partie.e.preventDefault();
et$(this).tab('show');
TypeError: a.browser is undefined
etTypeError: $(...).tab is not a function
. pouvez-vous me dire quels fichiers jquery sont nécessaires.test.html
. Avec une course de connexion internet, il fonctionne parfaitement..nav-tabs
au lieu de l'id généraliser ce modèle à utiliser pour tous bootstrap onglets (pas testé).active in
à l'aide de jquery. pour le premier onglet sur l'url ou le hachage de la base.C'est le meilleur que j'ai essayé:
"a[data-toggle=tab]"
serait mieux. La façon dont le sélecteur est écrit maintenant, il modifie également l'adresse URL du navigateur lorsque vous cliquez sur un lien pour ouvrir un modal.data-toggle="dropdown"
et qui je suis sur la même page avec des onglets dans un cas. Comme quelqu'un a dit ici, il suffit de remplacer$(document.body).on("click", "a[data-toggle]", function(event) {
avec$(document.body).on("click", "a[data-toggle='tab']", function(event) {
a fait le tour pour moi.Un mix entre autres réponses:
Il suffit de copier&coller 😉
var activeTab = localStorage.getItem('activeTab'); if (location.hash) { $('a[href=\'' + location.hash + '\']').tab('show'); } else if (activeTab) { $('a[href="' + activeTab + '"]').tab('show'); }
$(document).ready(function() {
parce que vos onglets n'existe pas encore et il essaie de slam de l'onglet actif avant qu'ils sont chargésXavi code a été allmost pleinement de travail. Mais lorsque vous naviguez vers une autre page, la soumission d'un formulaire, puis d'être redirigé vers la page avec mes onglets n'était pas le chargement de l'onglet enregistré à tous.
localStorage à la rescousse (légèrement modifié Nguyen code):
[data-toggle="pill"]
pour les pilulesCe un utiliser HTML5
localStorage
pour stocker de l'onglet actifref: 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
En me basant sur les réponses fournies par les Xavi Martínez et koppor je suis venu avec une solution qui utilise le hachage de l'url ou localStorage en fonction de la disponibilité de ce dernier:
Utilisation:
Il ne conserve pas avec le bouton de retour, comme c'est le cas pour Xavi Martínez's solution.
Mon code, ça marche pour moi, j'utilise
localStorage
HTML5J'ai essayé et ça marche: ( Veuillez remplacer cette avec la pilule ou de l'onglet que vous utilisez),
J'espère que ça aiderait quelqu'un.
Voici le résultat:
https://jsfiddle.net/neilbannet/ego1ncr5/5/
Bien, c'est déjà en 2018, mais je pense qu'il vaut mieux tard que jamais (comme un titre dans un programme de TÉLÉVISION), lol. Ici-bas est le jQuery, le code que j'ai créé au cours de ma thèse.
et voici le code de bootstrap onglets:
voici rapide des codes pour vous:
Maintenant, venons-en à l'explication:
À la recherche pour certains des exemples? voici pour vous les gars..
https://jsfiddle.net/Wineson123/brseabdr/
Je souhaite que ma réponse peut vous aider à vous toutes.. Plus! 🙂
Depuis je ne peux me prononcer mais j'ai copié la réponse à partir de ci-dessus, il m'a vraiment aidé à sortir. Mais j'ai changé de travail avec les cookies à la place de #id donc j'ai voulu partager les altérations. De ce fait, il est possible de stocker l'onglet actif est plus que juste un refresh (par exemple, plusieurs de redirection) ou lorsque l'id est déjà utilisé et que vous ne voulez pas mettre en œuvre koppors méthode split.
J'ai essayé le code offerts par Xavi Martínez. Il a travaillé, mais pas pour IE7. Le problème est que sur les onglets ne se réfèrent pas à tout contenu pertinent.
Donc, je préfère ce code pour résoudre ce problème.
Merci pour le partage.
Par la lecture de toutes les solutions. Je suis venu avec une solution qui utilise le hachage de l'url ou localStorage en fonction de la disponibilité de ce dernier avec le code ci-dessous:
Pour Bootstrap v4.3.1. Essayez ci-dessous:
À l'aide de html5 j'ai cuisiné cette:
Certains où sur la page:
Le viewbag doit juste contenir l'id de la page/l'élément par exemple.: "les essais"
J'ai créé un site.js et ajouté le scrip sur la page:
Maintenant tout ce que vous avez à faire est d'ajouter votre id de votre barre de navigation. Ex.:
All hail l'attribut data 🙂
En plus de Xavi Martínez de répondre, en évitant de sauter sur cliquez sur
En Évitant De Sauter
Imbriquée onglets
mise en œuvre avec le caractère "_" comme séparateur
Nous avons utilisé jquery déclencheur à onload de script, cliquez sur le bouton pour nous
$(".class_name").trigger('click');
Malheur, il y a tellement de façons de le faire. Je suis venu avec cette, court et simple. Espérons que cela aide les autres.