Recibo muchas quejas de los usuarios de que cuando usan mis pestañas basadas en jQuery, les resulta molesto que cuando vuelven a presionar en su navegador, no van a la pestaña anterior sino a la página anterior . Agregué los siguientes botones anterior / siguiente pero no lo suficiente. ¿Cómo puedo reconfigurar mis botones para que los usuarios accedan a la pestaña anterior en lugar de a la página anterior cuando hacen clic en la flecha hacia atrás del navegador? Puedes probarlo aquí .
$('#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;
});
javascript
jquery
Efe
fuente
fuente
Respuestas:
Puedes usar Historia.
Empuje un estado del historial cuando se abre una nueva pestaña
Referencia: https://developer.mozilla.org/en-US/docs/Web/API/History_API
fuente
Sin su código completo, no puedo darle un ejemplo a medida, pero simplemente puede agregar etiquetas de anclaje a cada pestaña que contenga div.
Esto actualizará la URL cada vez que un usuario haga clic en un enlace de pestaña. Estos cambios de URL se almacenarán en el historial del navegador y se recuperarán al navegar hacia atrás.
La URL actualizada se verá así cada vez que haga clic en una pestaña:
https://example.com#Tab1
https://example.com#Tab2
https://example.com#Tab3
https://example.com#Tab4
fuente
por un lado, su siguiente función de pestaña está escrita en javascript, y por el otro lado, el botón de retroceso en el navegador usa el historial del navegador, por lo que esto es irrelevante para sus funciones y no podría llevarlo a la pestaña anterior.
Entonces tienes dos formas de hacerlo realidad:
Primero: intente cargar cada paso en una página diferente actualizando el navegador, para que la página se guarde en el historial del navegador y presionando el botón Atrás puede ver el paso anterior
2º: debe tener un botón "anterior" para ver el paso anterior al igual que el botón del siguiente paso
fuente
He usado pestañas de arranque con la navegación de pestañas del navegador a continuación es el ejemplo completo
Puede consultar el ejemplo de trabajo en vivo de mi código
1> VAYA A https://www.notesgen.com (use el escritorio)
2> Crea tu cuenta como estudiante
3> IR A Mi cuenta / Mis descargas
4> Haga clic en Mis conexiones
fuente
Cambiar el hash es similar a presionar el estado
history.pushState
que desencadena elpopstate
evento. Al presionar hacia atrás y hacia adelante en el navegador, aparecerán y empujarán estos estados para que no necesite ningún otro controlador personalizado.PD: Puedes agregar estilo CSS a
:target
tuactive
clase. Loswindow.addEventListener('popstate'
registros aquí sólo para mostrar el evento, pero elevent.state
siempre será nula en este caso.Ejecute el fragmento de código, intente navegar por las pestañas y luego use los botones de avance y retroceso del navegador.
fuente
lo primero que necesita, evite el enlace para enviar la url en el historial por $ event.preventDefualt () en el evento click y personalice el historial con history.pushState (datos, título, url) .
En js tenemos un evento que nos ayuda a controlar el evento de ida y vuelta por usuario. Este nombre de evento es "popstate". puede usarlo mediante window.addEventListener ('popstate', devolución de llamada) . en la función de devolución de llamada, puede activar y desactivar la pestaña (agregar y eliminar clase) y extraer la URL.
Muestro esto con un código de muestra. para hacerlo y comprenderlo mejor, pruébelo en un servidor o servidor local porque allí el cambio de URL en el aquí es limitado:
fuente