2012-02-11 3 views
2

Мне нужно получить индекс выбранной вкладки объекта «tabs» внутри Accordian в пользовательском интерфейсе JQuery и сохранить его в переменной. Проблема в том, что я не знаю, как выбрать вкладку, которая находится внутри активного окна аккордеона. До сих пор у меня есть это:Доступ к вкладке внутри Accordian - JQuery UI

var active_acc = $(".accordion").accordion("option", "active"); //Returns accordian index that is open 
var active_tab = $(".tabs").tabs("option", "selected"); //Gets a tab index, but not the one in the open accordian. 

Я пытался что-то вроде этого:

var active_tab = $(".accordion").accordion("option", "active").(".tabs").tabs("option", "selected"); 

или

var active_tab = $(".accordion").accordion("option", "active").find(".tabs").tabs("option", "selected"); 

Но очевидно, что не работает, потому что первая часть просто решает число. Есть ли способ сделать это, что не связано с написанием некоторых модификаций id/class при событиях click, также отслеживайте, что открыто? Любая помощь приветствуется. Благодаря! не

ответ

2

Вкладка активного имеет класс .ui-state-active, так что-то вроде ...

$('#accordion .ui-accordion-header').filter('.ui-state-active').index() 

Кроме того, что индекс включает в себя также вкладки, так

$('#accordion .ui-accordion-header').filter('.ui-state-active').index()/2 
+0

не хорошо, я всегда получаю -1 ... – SuperTron

+0

Вы изменили селектора на то, что подходит для вашей реализации? Я тестировал его на демонстрационной странице jQuery UI Accordion, поэтому он определенно работает :) – Joe

+0

Ну, я изменил его на это: 'alert ($ ('. Accordion .ui-accordion-header'). Filter ('. Ui-state -active '). index()); 'но я не согласен с пониманием концепции фильтра, мне нужно получить объект табуляции, который находится внутри активного окна аккордеона, и с этим кодом вы никогда не смотрите на .tab: S – SuperTron

Смежные вопросы