2011-09-08 261 views
0

我有3个选项卡。 Tab1是默认选中的。如果我点击Tab2;我想获取上一个选定的选项卡。jQuery选项卡 - 获取选定选项卡的选项卡模板

我想:

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); 
     } 
    }); 
}); 

这是行不通的。任何人都可以告诉我这个解决方案吗?

在此先感谢。

回答

0

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

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

原因是,在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/

+0

感谢您的回答。我也找到了一个办法。但你的看起来不错。 – Vabs

+0

在这种情况下,将其称为'currentTab'可能更合适。 ;) –

相关问题