Estoy tratando de mantener activa la pestaña seleccionada al actualizar con Bootstrap 3 . Intenté y verifiqué con algunas preguntas que ya se hicieron aquí, pero ninguna de trabajo para mí. No sé dónde me equivoco. Aqui esta mi codigo
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
Amante del código
fuente
fuente
console.log("selectedTab::"+selectedTab);
, llegué:selectedTab::undefined
. Entonces, la lógica que aplicó no es correctaRespuestas:
Prefiero almacenar la pestaña seleccionada en el valor hash de la ventana. Esto también permite enviar enlaces a colegas, que ven "la misma" página. El truco consiste en cambiar el hash de la ubicación cuando se selecciona otra pestaña. Si ya usa # en su página, posiblemente la etiqueta hash deba dividirse. En mi aplicación, uso ":" como separador de valor hash.
JavaScript, tiene que estar incrustado después de lo anterior en una
<script>...</script>
parte.fuente
e.preventDefault();
y$(this).tab('show');
Este es el mejor que probé:
fuente
"a[data-toggle=tab]"
sería mejor. La forma en que está escrito el selector ahora también cambia la URL del navegador al hacer clic en un enlace para, por ejemplo, abrir un modal.data-toggle="dropdown"
y cuál tengo en la misma página con pestañas en un caso. Como alguien sugirió aquí, simplemente reemplazar$(document.body).on("click", "a[data-toggle]", function(event) {
con$(document.body).on("click", "a[data-toggle='tab']", function(event) {
meUna mezcla entre otras respuestas:
Simplemente copie y pegue;)
fuente
El código de Xavi estaba funcionando casi completamente. Pero al navegar a otra página, enviar un formulario y luego ser redirigido a la página con mis pestañas no estaba cargando la pestaña guardada en absoluto.
localStorage al rescate (cambió ligeramente el código de Nguyen):
fuente
[data-toggle="pill"]
para pastillasEste usa HTML5
localStorage
para almacenar la pestaña activaref: 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
fuente
Basándome en las respuestas proporcionadas por Xavi Martínez y koppor, se me ocurrió una solución que usa el hash de url o localStorage dependiendo de la disponibilidad de este último:
Uso:
No se mantiene al día con el botón de retroceso como es el caso de la solución de Xavi Martínez .
fuente
Mi código, funciona para mí, uso
localStorage
HTML5fuente
Probé esto y funciona: (Reemplace esto con la píldora o pestaña que está usando)
Espero que ayude a alguien.
Aquí está el resultado: https://jsfiddle.net/neilbannet/ego1ncr5/5/
fuente
Bueno, esto ya es en 2018 pero creo que es mejor tarde que nunca (como un título en un programa de televisión), jejeje. Aquí abajo está el código jQuery que creo durante mi tesis.
y aquí está el código para las pestañas de arranque:
aquí hay códigos rápidos para ti:
Ahora vayamos a la explicación:
¿Busca algunos ejemplos? aquí hay uno para ustedes ... https://jsfiddle.net/Wineson123/brseabdr/
Ojalá mi respuesta pudiera ayudarlos a todos .. ¡Cheerio! :)
fuente
Como aún no puedo comentar, copié la respuesta de arriba, realmente me ayudó. Pero lo cambié para que funcione con cookies en lugar de #id, así que quería compartir las alteraciones. Esto hace posible almacenar la pestaña activa durante más tiempo que solo una actualización (por ejemplo, redirección múltiple) o cuando la identificación ya se usa y no desea implementar el método de división de koppors.
fuente
Probé el código ofrecido por Xavi Martínez . Funcionó pero no para IE7. El problema es que las pestañas no hacen referencia a ningún contenido relevante.
Entonces, prefiero este código para resolver ese problema.
fuente
Gracias por compartir.
Al leer todas las soluciones. Se me ocurrió una solución que usa el hash url o localStorage dependiendo de la disponibilidad de este último con el siguiente código:
fuente
Para Bootstrap v4.3.1. Prueba a continuación:
fuente
Usando html5 cociné este:
En algún lugar de la página:
El viewbag solo debe contener la identificación de la página / elemento, por ejemplo: "prueba"
Creé un site.js y agregué el script en la página:
Ahora todo lo que tienes que hacer es agregar tu identificación a tu barra de navegación. P.ej.:
Todos saludan el atributo de datos :)
fuente
Además de la respuesta de Xavi Martínez evitando el salto al clic
Evitar el salto
Pestañas anidadas
implementación con el carácter "_" como separador
fuente
Usamos el disparador jquery para cargar y hacer que un script presione el botón para nosotros
$ (". class_name"). trigger ('hacer clic');
fuente
Ay, hay tantas formas de hacer esto. Se me ocurrió esto, breve y simple. Espero que esto ayude a otros.
fuente
fuente