jQuery选项卡 - 获取所选选项卡的tabtemplate

时间:2011-09-08 13:28:42

标签: jquery jquery-ui jquery-ui-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 个答案:

答案 0 :(得分:0)

原因是,在createui是一个空对象。如果您知道在开始时选择了第一个标签,则只需将上一个标签变量分配到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/

答案 1 :(得分:0)

我使用show函数解决了它。 previousTab是全局范围内的变量。

jQuery(function () {
    jQuery("#tabs").tabs({
        select: function (event, ui) {
            previousTab = jQuery(ui.tab);
        },
        show: function (event, ui) {
            previousTab = jQuery(ui.tab);
        }
    });
});