ОБНОВЛЕНИЕ [ Вс 08/26/2012 ] Этот ответ стал настолько популярным, что я решил превратить его в полноценный блог / учебник
Пожалуйста, посетите Мой блог здесь , чтобы увидеть последние сведения о простом доступе к работе с вкладками в jQueryUI.
Также включен (в блоге) jsFiddle
¡¡¡Обновление! Обратите внимание: в более новых версиях jQueryUI (1.9+) ui-tabs-selected
был заменен на ui-tabs-active
. !!!
Я знаю, что эта ветка старая, но я не заметил упоминания о том, как получить «выбранную вкладку» (в настоящее время выпадающую панель) из другого места, кроме «вкладка событий».
У меня есть простой способ ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)');
И чтобы легко получить индекс, конечно, есть путь, указанный на сайте ...
var $tabs = $('#example').tabs();
var selected = $tabs.tabs('option', 'selected'); // => 0
Тем не менее, вы можете использовать мой первый метод, чтобы получить индекс и все, что вы хотите об этой панели, довольно просто ...
var curTab = $('.ui-tabs-panel:not(.ui-tabs-hide)'),
curTabIndex = curTab.index(),
curTabID = curTab.prop("id"),
curTabCls = curTab.attr("class");
// etc ....
PS. Если вы используете переменную iframe, то .find ('. Ui-tabs-panel: not (.ui-tabs-hide)'), вам будет легко это сделать и для выбранных вкладок в фреймах.
Помните, jQuery уже проделал всю тяжелую работу, не нужно изобретать велосипед!
Просто расширить (обновлено)
Мне был задан вопрос: «Что, если в представлении есть несколько областей вкладок?»
Опять же, просто подумайте, используйте мою ту же настройку, но используйте идентификатор, чтобы определить, какие вкладки вы хотите получить.
Например, если у вас есть:
$('#example-1').tabs();
$('#example-2').tabs();
И вы хотите, чтобы текущая панель второй вкладки была установлена:
var curTabPanel = $('#example-2 .ui-tabs-panel:not(.ui-tabs-hide)');
А если вам нужна вкладка АКТУАЛЬНО, а не панель (очень просто, поэтому я не упоминал об этом раньше, но, полагаю, сейчас, просто чтобы быть внимательным)
// 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+
Опять же, помните, jQuery сделал всю тяжелую работу, не думайте так усердно.