Estou tentando manter a guia selecionada ativa na atualização com o Bootstrap 3 . Tentei e verifiquei com alguma pergunta já foi feita aqui, mas nada de trabalho para mim. Não sei onde estou errado. Aqui está o meu código
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
Code Lover
fonte
fonte
console.log("selectedTab::"+selectedTab);
, eu tenho:selectedTab::undefined
. Portanto, a lógica você aplicou não é corretoRespostas:
Eu prefiro armazenar a guia selecionada no hashvalue da janela. Isso também permite o envio de links para colegas que vêem a mesma página. O truque é alterar o hash do local quando outra guia for selecionada. Se você já usa # em sua página, possivelmente a tag hash deve ser dividida. No meu aplicativo, eu uso ":" como separador de valor de hash.
JavaScript, deve ser incorporado após o acima em uma
<script>...</script>
parte.fonte
e.preventDefault();
e$(this).tab('show');
Este é o melhor que eu tentei:
fonte
"a[data-toggle=tab]"
seria melhor. A maneira como o seletor é gravado agora também altera o URL do navegador ao clicar em um link para, por exemplo, abrir um modal.data-toggle="dropdown"
. E que por acaso tenho na mesma página com guias em um caso como alguém sugeriu aqui, apenas substituindo$(document.body).on("click", "a[data-toggle]", function(event) {
com$(document.body).on("click", "a[data-toggle='tab']", function(event) {
fez o truque para mim.Uma mistura entre outras respostas:
Basta copiar e colar;)
fonte
O código de Xavi estava funcionando totalmente. Porém, ao navegar para outra página, enviar um formulário e ser redirecionado para a página com minhas guias não estava carregando a guia salva.
localStorage para o resgate (código ligeiramente alterado de Nguyen):
fonte
[data-toggle="pill"]
para comprimidosEste usa HTML5
localStorage
para armazenar a guia ativaref: 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
fonte
Baseando-me nas respostas fornecidas por Xavi Martínez e koppor , criei uma solução que usa o URL hash ou localStorage, dependendo da disponibilidade do último:
Uso:
Ele não acompanha o botão Voltar, como é o caso da solução de Xavi Martínez .
fonte
Meu código, funciona para mim, eu uso
localStorage
HTML5fonte
Eu tentei isso e funciona: (Substitua isso pela pílula ou guia que você está usando)
Espero que ajude alguém.
Aqui está o resultado: https://jsfiddle.net/neilbannet/ego1ncr5/5/
fonte
Bem, isso já está em 2018, mas acho que é melhor tarde do que nunca (como um título em um programa de TV), lol. Aqui embaixo está o código jQuery que eu crio durante minha tese.
e aqui está o código para as guias de inicialização:
Aqui estão os códigos rápidos para você:
Agora vamos à explicação:
Procurando alguns exemplos? aqui está um para vocês .. https://jsfiddle.net/Wineson123/brseabdr/
Eu gostaria que minha resposta pudesse ajudar a todos .. Cheerio! :)
fonte
Como ainda não posso comentar, copiei a resposta de cima, isso realmente me ajudou. Mas eu mudei para trabalhar com cookies em vez de #id, então eu queria compartilhar as alterações. Isso torna possível armazenar a guia ativa por mais tempo do que apenas uma atualização (por exemplo, redirecionamento múltiplo) ou quando o ID já está sendo usado e você não deseja implementar o método de divisão koppors.
fonte
Eu tentei o código oferecido por Xavi Martínez . Funcionou, mas não para o IE7. O problema é: as guias não se referem a nenhum conteúdo relevante.
Então, eu prefiro esse código para resolver esse problema.
fonte
Obrigado por compartilhar.
Ao ler todas as soluções. Eu vim com uma solução que usa o URL hash ou localStorage, dependendo da disponibilidade deste último com o código abaixo:
fonte
Para o Bootstrap v4.3.1. Tente abaixo:
fonte
Usando html5, preparei este:
Alguns estão na página:
A viewbag deve conter apenas o ID da página / elemento, por exemplo: "testing"
Criei um site.js e adicionei o script na página:
Agora tudo o que você precisa fazer é adicionar seus IDs à sua barra de navegação. Por exemplo.:
Todos saudam o atributo de dados :)
fonte
Além da resposta de Xavi Martínez, evitando o salto no clique
Evitando o salto
Guias aninhadas
implementação com o caractere "_" como separador
fonte
Usamos o gatilho jquery para carregar um script, pressione o botão para nós
$ (". class_name"). trigger ('clique');
fonte
Ai, há muitas maneiras de fazer isso. Eu vim com isso, curto e simples. Espero que isso ajude os outros.
fonte
fonte