ACTUALIZACIÓN [ Dom 26/08/2012 ] Esta respuesta se ha vuelto tan popular que decidí convertirla en un blog / tutorial completo.
Visite Mi blog aquí para ver lo último en información de fácil acceso para trabajar con pestañas en jQueryUI.
También incluido (en el blog también) es un jsFiddle
¡¡¡Actualización! Tenga en cuenta: en las versiones más recientes de jQueryUI (1.9+), ui-tabs-selected
se ha reemplazado por ui-tabs-active
. !!!
Sé que este hilo es antiguo, pero algo que no vi mencionado fue cómo obtener la "pestaña seleccionada" (panel desplegable actualmente) desde otro lugar que no sea "eventos de pestaña". Tengo una forma sencilla ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)');
Y para obtener fácilmente el índice, por supuesto, existe la forma que figura en el sitio ...
var $tabs = $('#example').tabs();
var selected = $tabs.tabs('option', 'selected'); // => 0
Sin embargo, podría usar mi primer método para obtener el índice y cualquier cosa que desee sobre ese panel con bastante facilidad ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)'),
curTabIndex = curTab.index(),
curTabID = curTab.prop("id"),
curTabCls = curTab.attr("class");
// etc ....
PD. Si usa una variable iframe y luego .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), también le resultará fácil hacer esto para las pestañas seleccionadas en marcos. Recuerde, jQuery ya hizo todo el trabajo duro, ¡no es necesario reinventar la rueda!
Solo para expandir (actualizado)
Se me planteó la pregunta: "¿Qué pasa si hay más de un área de pestañas en la vista?" Una vez más, piense simple, use mi misma configuración pero use una ID para identificar qué pestañas desea obtener.
Por ejemplo, si tiene:
$('#example-1').tabs();
$('#example-2').tabs();
Y desea el panel actual del segundo conjunto de pestañas:
var curTabPanel = $('#example-2 .ui-tabs-panel:not(.ui-tabs-hide)');
Y si quieres la pestaña ACTUAL y no el panel (realmente fácil, por eso no lo mencioné antes, pero supongo que lo haré ahora, solo para ser exhaustivo)
// 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+
Una vez más, recuerde, jQuery hizo todo el trabajo duro, no lo piense tanto.