MISE À JOUR [ Sun 08/26/2012 ] Cette réponse est devenue si populaire que j'ai décidé d'en faire un blog / tutoriel à part entière.
Veuillez visiter Mon blog ici pour voir les dernières informations d'accès facile pour travailler avec les onglets dans jQueryUI
Également inclus (dans le blog aussi) est un jsFiddle
Mettre à jour! Remarque: dans les versions plus récentes de jQueryUI (1.9+), ui-tabs-selected
a été remplacé par ui-tabs-active
. !!!
Je sais que ce fil est vieux, mais quelque 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 ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)');
Et pour obtenir facilement l'index, il y a bien sûr le chemin indiqué sur le site ...
var $tabs = $('#example').tabs();
var selected = $tabs.tabs('option', 'selected'); // => 0
Cependant, vous pouvez utiliser ma première méthode pour obtenir l'index et tout ce que vous voulez sur ce panneau assez facilement ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)'),
curTabIndex = curTab.index(),
curTabID = curTab.prop("id"),
curTabCls = curTab.attr("class");
// etc ....
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!
Juste pour développer (mis à jour)
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:
$('#example-1').tabs();
$('#example-2').tabs();
Et vous voulez le panneau actuel du deuxième ensemble d'onglets:
var curTabPanel = $('#example-2 .ui-tabs-panel:not(.ui-tabs-hide)');
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)
// for page with only one set of tabs
var curTab = $('.ui-tabs-selected'); // '.ui-tabs-active' in jQuery 1.9+
// for page with multiple sets of tabs
var curTab2 = $('#example-2 .ui-tabs-selected'); // '.ui-tabs-active' in jQuery 1.9+
Encore une fois, rappelez-vous, jQuery a fait tout le travail difficile, ne réfléchissez pas si dur.