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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top