jQuery Tabs - получить шаблон таблицы выбранной вкладки - PullRequest
0 голосов
/ 08 сентября 2011

У меня 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 ]

0 голосов
/ 11 сентября 2011

Я решил, используя функцию show.previousTab - это переменная в глобальной области видимости.

jQuery(function () {
    jQuery("#tabs").tabs({
        select: function (event, ui) {
            previousTab = jQuery(ui.tab);
        },
        show: function (event, ui) {
            previousTab = jQuery(ui.tab);
        }
    });
});
0 голосов
/ 09 сентября 2011

Причина в том, что на 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/.

...