jQuery Tabs - получить шаблон выбранной вкладки
У меня есть 3 вкладки. Tab1 выбран по умолчанию. Если я нажму Tab2; Я хочу получить предыдущую выбранную вкладку.
Я старался:
var previousTab;
jQuery(function () {
jQuery("#tabs").tabs({
select: function (event, ui){
doSomething(previousTab);
previousTab = jQuery(ui.tab);
},
create: function (event, ui) {
previousTab = jQuery(ui.tab);
}
});
});
Это не работает Может кто-нибудь сказать мне решение для этого?
Заранее спасибо.
2 ответа
Я решил это используя show
функция.previousTab
переменная в глобальной области видимости
jQuery(function () {
jQuery("#tabs").tabs({
select: function (event, ui) {
previousTab = jQuery(ui.tab);
},
show: function (event, ui) {
previousTab = jQuery(ui.tab);
}
});
});
Причина в том, что при create
, ui
это пустой объект. Если вы знаете, что первая вкладка выбрана в начале, вы можете просто назначить предыдущую переменную вкладки первой вкладке в create
,
Одно из предложений: вместо создания глобальной переменной для отслеживания предыдущей вкладки вы можете сохранить ее в #tabs
элемент. Обычно рекомендуется избегать создания переменных в глобальной области видимости.
$('#tabs').tabs({
select: function(event, ui) {
var previousTab = $(this).data('previousTab');
if (previousTab !== undefined)
console.log(previousTab);
$(this).data('previousTab', $(ui.tab));
},
create: function(event, ui) {
$(this).data('previousTab', $($(this).find('ul > li > a').get(0)));
}
});
Посмотрите это в действии: http://jsfiddle.net/william/yMbhA/2/.