Je sais que cette question spécifique a déjà été posée , mais je n'obtiens aucun résultat en utilisant l' bind()
événement sur le jQuery UI Tabs
plugin.
J'ai juste besoin index
de l'onglet nouvellement sélectionné pour effectuer une action lorsque l'utilisateur clique sur l'onglet. bind()
me permet de m'accrocher à l'événement select, mais ma méthode habituelle pour obtenir l'onglet actuellement sélectionné ne fonctionne pas. Il renvoie l'index de l'onglet précédemment sélectionné, pas le nouveau:
var selectedTab = $("#TabList").tabs().data("selected.tabs");
Voici le code que j'essaie d'utiliser pour obtenir l'onglet actuellement sélectionné:
$("#TabList").bind("tabsselect", function(event, ui) {
});
Lorsque j'utilise ce code, l'objet ui revientundefined
. D'après la documentation, cela devrait être l'objet que j'utilise pour m'accrocher à l'index nouvellement sélectionné en utilisant ui.tab. J'ai essayé cela lors de l' tabs()
appel initial et aussi seul. Est-ce que je fais quelque chose de mal ici?
la source
Si vous avez besoin d'obtenir l'index des onglets en dehors du contexte d'un événement tabs, utilisez ceci:
Mise à jour: à partir de la version 1.9, «sélectionné» est remplacé par «actif»
la source
Mettre à jour! Remarque: dans les versions plus récentes de jQueryUI (1.9+),
ui-tabs-selected
a été remplacé parui-tabs-active
. !!!Je sais que ce fil est vieux, maisquelque chose que je n'ai pas vu mentionné était de savoir comment obtenir "l'onglet sélectionné" (panneau actuellement déroulé) à partir d'un autre endroit que les "événements de l'onglet". J'ai un moyen simple ...Et pour obtenir facilement l'index, il y a bien sûr le chemin indiqué sur le site ...
Cependant, vous pouvez utiliser ma première méthode pour obtenir l'index et tout ce que vous voulez sur ce panneau assez facilement ...
PS. Si vous utilisez une variable iframe alors .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), vous trouverez également facile de le faire pour les onglets sélectionnés dans les cadres. Rappelez-vous que jQuery a déjà fait tout le travail, pas besoin de réinventer la roue!
La question m'a été posée: "Que faire s'il y a plusieurs zones d'onglets sur la vue?" Encore une fois, pensez simple, utilisez ma même configuration, mais utilisez un identifiant pour identifier les onglets que vous souhaitez consulter.
Par exemple, si vous avez:
Et vous voulez le panneau actuel du deuxième ensemble d'onglets:
Et si vous voulez l'onglet ACTUAL et non le panneau (vraiment facile, c'est pourquoi je ne l'ai pas mentionné avant mais je suppose que je le ferai maintenant, juste pour être minutieux)
Encore une fois, rappelez-vous, jQuery a fait tout le travail difficile, ne réfléchissez pas si dur.
la source
Si vous utilisez JQuery UI version 1.9.0 ou supérieure, vous pouvez accéder à ui.newTab.index () dans votre fonction et obtenir ce dont vous avez besoin.
Pour les versions antérieures, utilisez ui.index .
la source
la source
Quand essayez-vous d'accéder à l'objet ui? ui ne sera pas défini si vous essayez d'y accéder en dehors de l'événement de liaison. Aussi, si cette ligne
est exécuté dans l'événement comme celui-ci:
selectedTab sera égal à l'onglet actuel à ce moment-là (le "précédent".) Cela est dû au fait que l'événement "tabsselect" est appelé avant que l'onglet cliqué ne devienne l'onglet actuel. Si vous voulez toujours le faire de cette façon, utiliser à la place "tabsshow" entraînera selectedTab égal à l'onglet cliqué.
Cependant, cela semble trop complexe si vous ne voulez que l'index. ui.index depuis l'événement ou $ ("# TabList"). tabs (). data ("selected.tabs") en dehors de l'événement devrait être tout ce dont vous avez besoin.
la source
cela a changé avec la version 1.9
quelque chose comme
Devrait être utilisé. Cela fonctionne bien pour moi ;-)
la source
Si quelqu'un a essayé d'accéder aux onglets à partir d'une iframe, vous remarquerez peut-être que ce n'est pas possible. Le
div
de l'onglet n'est jamais marqué comme sélectionné, juste comme caché ou non caché. Le lien lui-même est le seul élément marqué comme sélectionné.Ce qui suit vous donnera la
href
valeur du lien qui devrait être la même que l'ID de votre conteneur d'onglets:Cela devrait également fonctionner à la place de:
$tabs.tabs('option', 'selected');
C'est mieux en ce sens qu'au lieu d'obtenir simplement l'index de l'onglet, cela vous donne l'identifiant réel de l'onglet.
la source
le moyen le plus simple de procéder est
et pour index
la source
Dans le cas où vous trouvez l'index de l'onglet actif, puis pointez sur l'onglet actif
Obtenez d'abord l'index actif
Ensuite, à l'aide de la classe css, obtenez le panneau de contenu de l'onglet
maintenant enveloppé dans un objet jQuery pour l'utiliser davantage
ici, je veux ajouter deux informations auxquelles la classe
.ui-tabs-nav
est pour la navigation associée et.ui-tabs-panel
est associée au panneau de contenu de l'onglet. dans cette démo de lien dans le site Web de jquery ui, vous verrez que cette classe est utilisée - http://jqueryui.com/tabs/#manipulationla source
alors vous aurez l'index de tab de 0
Facile
la source
Essayez ce qui suit:
la source
J'ai trouvé que le code ci-dessous faisait l'affaire. Définit une variable de l'index de l'onglet nouvellement sélectionné
la source
Vous pouvez poster la réponse ci-dessous dans votre prochain post
la source
Une autre façon d'obtenir l'index de l'onglet sélectionné est:
la source
Dans la variable url , vous obtiendrez le HREF / URL de l'onglet actuel
la source
Vous pouvez le trouver via:
la source
prenez une variable cachée comme
'<input type="hidden" id="sel_tab" name="sel_tab" value="" />'
et sur l'événement onclick de chaque onglet, écrivez du code comme ...vous pouvez obtenir la valeur de 'sel_tab' sur la page publiée. :) , Facile !!!
la source
Si vous voulez vous assurer qu'il
ui.newTab.index()
est disponible dans toutes les situations (onglets locaux et distants), appelez-le dans la fonction d' activation comme le dit la documentation :http://jsfiddle.net/7v7n0v3j/
la source
la source