2011-09-08 260 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'可能更合適。 ;) –

相關問題