UPDATE [ So 26.08.2012 ] Diese Antwort ist so populär geworden, dass ich beschlossen habe, sie zu einem vollwertigen Blog / Tutorial zu machen.
Bitte besuchen Sie Mein Blog hier , um die neuesten Informationen zum einfachen Zugriff auf die Arbeit mit Registerkarten in jQueryUI zu erhalten.
Ebenfalls enthalten (auch im Blog) ist eine jsFiddle
¡¡¡Update! Bitte beachten Sie: In neueren Versionen von jQueryUI (1.9+) ui-tabs-selected
wurde durch ersetzt ui-tabs-active
. !!!
Ich weiß, dass dieser Thread alt ist, aber etwas, das ich nicht erwähnt habe, war, wie man den "ausgewählten Tab" (derzeit heruntergeklapptes Feld) von einem anderen Ort als den "Tab-Ereignissen" erhält. Ich habe einen einfachen Weg ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)');
Und um den Index einfach zu erhalten, gibt es natürlich den auf der Website aufgeführten Weg ...
var $tabs = $('#example').tabs();
var selected = $tabs.tabs('option', 'selected'); // => 0
Sie könnten jedoch meine erste Methode verwenden, um den Index und alles, was Sie über dieses Panel wollen, ziemlich einfach zu erhalten ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)'),
curTabIndex = curTab.index(),
curTabID = curTab.prop("id"),
curTabCls = curTab.attr("class");
// etc ....
PS. Wenn Sie eine iframe-Variable verwenden, dann .find ('. UI-tabs-panel: not (.ui-tabs-hide)'), können Sie dies auch für ausgewählte Registerkarten in Frames leicht tun. Denken Sie daran, jQuery hat bereits die ganze harte Arbeit geleistet, ohne das Rad neu erfinden zu müssen!
Nur um zu erweitern (aktualisiert)
Es wurde mir die Frage gestellt: "Was ist, wenn die Ansicht mehr als einen Registerkartenbereich enthält?" Denken Sie auch hier einfach, verwenden Sie dasselbe Setup, verwenden Sie jedoch eine ID, um zu identifizieren, welche Registerkarten Sie erhalten möchten.
Zum Beispiel, wenn Sie haben:
$('#example-1').tabs();
$('#example-2').tabs();
Und Sie möchten das aktuelle Bedienfeld des zweiten Registerkartensatzes:
var curTabPanel = $('#example-2 .ui-tabs-panel:not(.ui-tabs-hide)');
Und wenn Sie die Registerkarte TATSÄCHLICH und nicht das Bedienfeld möchten (ganz einfach, weshalb ich es vorher nicht erwähnt habe, aber ich nehme an, ich werde es jetzt tun, nur um gründlich zu sein).
// 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+
Denken Sie daran, jQuery hat die ganze harte Arbeit geleistet, denken Sie nicht so hart.