Eu sei que essa pergunta específica já foi feita antes , mas não estou obtendo nenhum resultado usando o bind()
evento no jQuery UI Tabs
plugin.
Eu só preciso da index
guia recém-selecionada para executar uma ação quando a guia for clicada. bind()
permite que eu me conecte ao evento select, mas meu método usual de obter a guia atualmente selecionada não funciona. Ele retorna o índice da guia selecionada anteriormente, não o novo:
var selectedTab = $("#TabList").tabs().data("selected.tabs");
Aqui está o código que estou tentando usar para obter a guia atualmente selecionada:
$("#TabList").bind("tabsselect", function(event, ui) {
});
Quando eu uso esse código, o objeto ui voltaundefined
. Pela documentação, este deve ser o objeto que estou usando para conectar ao índice recém-selecionado usando ui.tab. Eu tentei isso na tabs()
ligação inicial e também por conta própria. Estou fazendo algo errado aqui?
fonte
Se você precisar obter o índice de tabulação de fora do contexto de um evento tabs, use isto:
Atualização: A partir da versão 1.9 'selecionado' é alterado para 'ativo'
fonte
¡¡¡Atualização! Observação: nas versões mais recentes do jQueryUI (1.9+),
ui-tabs-selected
foi substituído porui-tabs-active
. !!!Eu sei que este tópico é antigo, masalgo que não vi mencionado foi como obter a "guia selecionada" (painel atualmente suspenso) de algum lugar diferente dos "eventos da guia". Eu tenho uma maneira simples ...E para obter facilmente o índice, claro que existe a forma listada no site ...
No entanto, você poderia usar meu primeiro método para obter o índice e qualquer coisa que quiser sobre esse painel muito fácil ...
PS. Se você usar uma variável iframe então .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), você achará fácil fazer isso também para as guias selecionadas nos quadros. Lembre-se, jQuery já fez todo o trabalho duro, não há necessidade de reinventar a roda!
A pergunta que me foi apresentada: "E se houver mais de uma área de guias na visualização?" Novamente, pense de forma simples, use minha mesma configuração, mas use um ID para identificar quais guias você deseja acessar.
Por exemplo, se você tem:
E você quer o painel atual do segundo conjunto de guias:
E se você quiser a guia ACTUAL e não o painel (muito fácil, é por isso que eu não mencionei antes, mas suponho que vou agora, apenas para ser mais completo)
Novamente, lembre-se, jQuery fez todo o trabalho duro, não pense muito.
fonte
Se estiver usando JQuery UI versão 1.9.0 ou superior, você pode acessar ui.newTab.index () dentro de sua função e obter o que precisa.
Para versões anteriores, use ui.index .
fonte
fonte
Quando você está tentando acessar o objeto IU? ui será indefinido se você tentar acessá-lo fora do evento de ligação. Além disso, se esta linha
é executado no evento assim:
selectedTab será igual à guia atual naquele ponto no tempo (a "anterior".) Isso ocorre porque o evento "tabsselect" é chamado antes que a guia clicada se torne a guia atual. Se você ainda quiser fazer dessa forma, usar "tabsshow" resultará em selectedTab igualando-se à guia clicada.
No entanto, isso parece muito complexo se tudo o que você deseja é o índice. ui.index de dentro do evento ou $ ("# TabList"). tabs (). data ("selected.tabs") fora do evento deve ser tudo o que você precisa.
fonte
isso mudou com a versão 1.9
algo como
deve ser usado. Isso está funcionando bem para mim ;-)
fonte
Caso alguém tenha tentado acessar as guias de um iframe, você perceberá que não é possível. O
div
da guia nunca é marcado como selecionado, apenas como oculto ou não oculto. O link em si é a única peça marcada como selecionada.A seguir, você obterá o
href
valor do link, que deve ser igual ao id do contêiner da guia:Isso também deve funcionar no lugar de:
$tabs.tabs('option', 'selected');
É melhor no sentido de que em vez de apenas obter o índice da guia, ele fornece a id real da guia.
fonte
a maneira mais fácil de fazer isso é
e para índice
fonte
Caso você encontre Índice da guia Ativa e aponte para Guia Ativa
Primeiro obtenha o índice ativo
Então, usando a classe css, obtenha o painel de conteúdo da guia
agora embrulhado em objeto jQuery para usá-lo posteriormente
aqui eu quero adicionar duas informações de que a classe
.ui-tabs-nav
é para Navegação associada e.ui-tabs-panel
está associada ao painel de conteúdo da guia. neste link demo no site jquery ui você verá que esta classe é usada - http://jqueryui.com/tabs/#manipulationfonte
então você terá o índice da guia de 0
simples
fonte
Experimente o seguinte:
fonte
Eu descobri que o código abaixo faz o truque. Define uma variável do índice da guia recém-selecionada
fonte
Você pode postar a resposta abaixo em sua próxima postagem
fonte
Outra maneira de obter o índice da guia selecionada é:
fonte
Na variável url você obterá o HREF / URL da guia atual
fonte
Você pode encontrá-lo via:
fonte
pegue uma variável oculta como
'<input type="hidden" id="sel_tab" name="sel_tab" value="" />'
e em cada evento onclick da guia escreva o código como ...você pode obter o valor de 'sel_tab' na página postada. :), simples !!!
fonte
Se você quiser garantir que
ui.newTab.index()
está disponível em todas as situações (guias locais e remotas), chame-o na função ativar como diz a documentação :http://jsfiddle.net/7v7n0v3j/
fonte
fonte