passe o valor da string de consulta para abrir a guia jquery relevante na página naext
-
26-09-2019 - |
Pergunta
eu tenho um link na página 1 com querystring href="page2.html?selected=1"
.
O que eu quero é que quando eu clicar neste link na página 1, ele navegue até a página 2.html e use esse valor de querystring para abrir uma guia jquery específica (usando guias jquery)?
A função é a seguinte:
$(function selectTab(indexId){
var activeTab = location.href;
var activeTabId = activeTab.substring(activeTab.lastIndexOf('=') + 1);
$('#tabs').tabs('select', indexId);
})
Por favor me diga como posso resolver esse problema?
Solução
Você pode fazer desta forma, mas suas variáveis estão misturadas, seria apenas:
$(function selectTab(){
var activeTab = location.href;
var activeTabId = activeTab.substring(activeTab.lastIndexOf('=') + 1);
$('#tabs').tabs('select', activeTabId);
})
No entanto, já existe suporte integrado para isso, basta usar uma URL como esta:
page2.html?#tabPanelID
Por exemplo, se a guia tiver um link de href="#tab3"
isso vai para um <div id="tab3">
então seu URL seria page2.html#tab3
, confira este link: http://jqueryui.com/demos/tabs/#tabs-3
Viu como ele abre diretamente na terceira aba da demonstração?esse é o comportamento integrado.
Outras dicas
Tente assim ... eu sei que é um pouco longo, mas pelo menos você pode ver cada estágio de como o JS Tabs é implementado.
Adicione um revelador à sua string assim que a página recarregue ... eu fiz o Tab222.
Então eu identifique o seu conteúdo de guia div, eu fiz #tab_2
Altere a tag de menu Href para o que você tem ...
$(document).ready(function(){
if (/tab222/.test(self.location.href)) {
$('#p_tabs li').removeClass('active');
$('#p_tabs li a[href="#tab_2"]').parent().addClass('active');
$('#tab_one').removeClass('active');
$('#tab_two').addClass('active');
};
});
Vwala! Espero que ajude.