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/.

Другие вопросы по тегам