Je reçois beaucoup de plaintes des utilisateurs que lorsqu'ils utilisent mes onglets basés sur jQuery, ils trouvent ennuyeux que lorsqu'ils reviennent sur leur navigateur, ils ne reviennent pas à l'onglet précédent mais à la page précédente . J'ai ajouté les boutons précédent / suivant suivants mais pas assez. Comment puis-je reconfigurer mes boutons pour que les utilisateurs accèdent à l'onglet précédent plutôt qu'à la page précédente lorsqu'ils cliquent sur la flèche de retour du navigateur. Vous pouvez le tester ici .
$('#quicktabs-registration_steps').append('<div class="prevnext"><a class="tablink-prev btn" href="#">Prev</a><a class="tablink-next btn btn-lg btn-primary" href="#">Continue</a></div>');
$('.tablink-prev').click(function () {
var index = $('.quicktabs-tabs li.active').index();
$('.quicktabs-tabs li').eq(index).removeClass('active');
if (index == 0) {
index = 1;
}
$('.quicktabs-tabs li').eq(index - 1).addClass('active');
$('.quicktabs-tabs li').eq(index - 1).find('a').click();
return false;
});
$('.tablink-next').click(function () {
var length = $('.quicktabs-tabs').first().children().size();;
var index = $('.quicktabs-tabs li.active').index();
$('.quicktabs-tabs li').eq(index).removeClass('active');
// if (parseInt(index) == parseInt(length) - 1 ) {
// index = index - 1;
// }
if (parseInt(index) == parseInt(length) - 1) {
window.location.href = '/home'; //redirect to home
//index = index - 1;
}
$('.quicktabs-tabs li').eq(index + 1).addClass('active');
$('.quicktabs-tabs li').eq(index + 1).find('a').click();
return false;
});
Réponses:
Vous pouvez utiliser l'historique.
Poussez un état d'historique lorsqu'un nouvel onglet est ouvert
Référence: https://developer.mozilla.org/en-US/docs/Web/API/History_API
la source
Sans votre code complet, je ne peux pas vous donner d'exemple sur mesure, mais vous pouvez simplement ajouter des balises d'ancrage à chaque onglet contenant div.
Cela mettra à jour l'URL chaque fois qu'un utilisateur clique sur un lien d'onglet. Ces modifications d'URL seront stockées dans l'historique du navigateur et seront rappelées lors de la navigation vers l'arrière.
L'URL mise à jour ressemblera à ceci chaque fois que vous cliquez sur un onglet:
https://example.com#Tab1
https://example.com#Tab2
https://example.com#Tab3
https://example.com#Tab4
la source
d'un côté, votre fonction d'onglet suivante est écrite en javascript, et de l'autre côté, le bouton de retour dans le navigateur utilise l'historique du navigateur, donc cela n'a aucun rapport avec vos fonctions et ne peut pas vous amener du tout à l'onglet précédent.
Vous avez donc deux façons d'y arriver:
1er: essayez de charger chaque étape dans une page différente en actualisant le navigateur, de sorte que la page enregistre dans l'historique du navigateur et en appuyant sur le bouton de retour, vous pouvez voir l'étape précédente
2ème: vous devriez avoir un bouton "précédent" pour voir l'étape précédente tout comme votre bouton d'étape suivante
la source
J'ai utilisé des onglets bootsrap avec la navigation des onglets du navigateur ci-dessous est l'exemple complet
Vous pouvez consulter un exemple de travail en direct de mon code
1> ALLEZ À https://www.notesgen.com (utilisez le bureau)
2> Créez votre compte étudiant
3> ALLER À Mon compte / Mes téléchargements
4> Cliquez sur Mes connexions
la source
Changer le hachage est similaire à pousser l'état
history.pushState
qui déclenche l'popstate
événement. En appuyant et en revenant sur le navigateur, ces états apparaîtront et pousseront, vous n'aurez donc besoin d'aucun autre gestionnaire personnalisé.PS: Vous pouvez ajouter du style CSS à
:target
partir de votreactive
classe. L'window.addEventListener('popstate'
ici se connecte juste pour vous montrer l'événement mais leevent.state
sera toujours nul dans ce cas.Exécutez un extrait de code, essayez de naviguer dans les onglets, puis utilisez les boutons Précédent et Suivant du navigateur.
la source
première chose dont vous avez besoin, empêchez le lien de soumettre l'url dans l'historique par $ event.preventDefualt () dans l'événement click et personnalisez l'historique avec history.pushState (data, title, url) .
Dans js, nous avons un événement qui nous aide à contrôler l'événement arrière et avant par utilisateur. Ce nom d'événement est "popstate". vous pouvez l'utiliser par window.addEventListener ('popstate', callback) . dans la fonction de rappel, vous pouvez activer et désactiver l'onglet (ajouter et supprimer une classe) et extraire l'url.
Je montre cela avec un exemple de code. pour mieux faire et comprendre, essayez-le sur un serveur ou sur un serveur local car là-dedans, le changement d'URL est limité:
la source