UPDATE [ Sun 26.08.2012 ] Ta odpowiedź stała się tak popularna, że postanowiłem zrobić go w pełnoprawny bloga / poradnik
proszę odwiedzić Mój blog tutaj , aby zobaczyć najnowsze informacje w łatwym dostępie do pracy z kartami w jQueryUI
obejmował również (również na blogu) to jsFiddle
Aktualizacja! Uwaga: w nowszych wersjach jQueryUI (1.9+),ui-tabs-selected
został zastąpiony przez ui-tabs-active
. !!!
Wiem, że ten wątek jest stary, ale nie wspomniałem o tym, jak uzyskać „wybraną kartę” (aktualnie rozwijany panel) z innego miejsca niż „zdarzenia na karcie”. Mam prosty sposób ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)');
Aby łatwo uzyskać indeks, istnieje oczywiście sposób wymieniony na stronie ...
var $tabs = $('#example').tabs();
var selected = $tabs.tabs('option', 'selected'); // => 0
Możesz jednak użyć mojej pierwszej metody, aby uzyskać indeks i wszystko, co chcesz w tym panelu, całkiem łatwo ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)'),
curTabIndex = curTab.index(),
curTabID = curTab.prop("id"),
curTabCls = curTab.attr("class");
// etc ....
PS. Jeśli użyjesz zmiennej iframe, a następnie .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), łatwo będzie to zrobić również dla wybranych zakładek w ramkach. Pamiętaj, jQuery wykonał już całą ciężką pracę, nie ma potrzeby odkrywania koła na nowo!
Tylko do rozwinięcia (zaktualizowane)
Pojawiło się pytanie: „A jeśli w widoku jest więcej niż jeden obszar zakładek?” Ponownie, pomyśl prosto, użyj tej samej konfiguracji, ale użyj identyfikatora, aby określić, które karty chcesz zdobyć.
Na przykład, jeśli masz:
$('#example-1').tabs();
$('#example-2').tabs();
I chcesz, aby bieżący panel drugiej karty był ustawiony:
var curTabPanel = $('#example-2 .ui-tabs-panel:not(.ui-tabs-hide)');
A jeśli chcesz zakładkę RZECZYWISTE, a nie panel (naprawdę łatwe, dlatego wcześniej o tym nie wspominałem, ale przypuszczam, że teraz będę, żeby być dokładnym)
// 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+
Pamiętaj, że jQuery wykonał całą ciężką pracę, nie myśl tak mocno.