UPDATE [ Dimanche 26/08/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 le dernier cri en matière d'information facile d'accès pour travailler avec onglets dans jQueryUI
Vous trouverez également (dans le blog également) une jsFiddle
¡¡¡ Mise à jour ! Veuillez noter : 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 Une chose que je n'ai pas vue mentionnée est comment obtenir l'"onglet sélectionné" (panneau déroulant actuel) à partir d'un autre endroit que les "événements d'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 puis .find('.ui-tabs-panel:not(.ui-tabs-hide)'), vous trouverez qu'il est facile de faire cela pour les onglets sélectionnés dans les cadres également. N'oubliez pas que jQuery a déjà fait tout le travail, pas besoin de réinventer la roue !
Juste pour développer (mis à jour)
On m'a posé la question suivante : "Que se passe-t-il s'il y a plus d'une zone d'onglets dans la vue ?". Encore une fois, pensez simplement, utilisez ma même configuration mais utilisez un ID pour identifier les onglets que vous voulez atteindre.
Par exemple, si vous avez :
$('#example-1').tabs();
$('#example-2').tabs();
Et vous voulez que le panneau actuel du deuxième onglet soit défini :
var curTabPanel = $('#example-2 .ui-tabs-panel:not(.ui-tabs-hide)');
Et si vous voulez l'onglet RÉEL et non le panneau (vraiment facile, c'est pourquoi je ne l'ai pas mentionné avant mais je suppose que je vais le faire 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, n'oubliez pas que c'est jQuery qui a fait tout le travail, ne pensez pas trop fort.