2014-01-20 28 views
0

我有兩個選項卡,您可以從中打開新的第三個選項卡並將其設置爲活動狀態。當通過點擊x圖標關閉新打開的選項卡時,該選項卡應處於活動狀態,從中打開新選項卡。我怎樣才能設置正確的選項卡激活?JQuery在關閉新的opend選項卡時設置了正確的選項卡

如果用戶打開從TAB1新的選項卡,然後關閉新標籤(#3),然後激活的標籤應該再次TAB1。如果用戶打開位於標籤2上的新標籤,則當他關閉新打開的標籤時,活動標籤應爲標籤2。

這裏是我的代碼以關閉標籤:

// close icon: removing the tab on click 
tabs.delegate("span.ui-icon-close", "click", function() { 
    var panelId = $(this).closest("li").remove().attr("aria-controls"); 
    $("#" + panelId).remove(); 
}); 

看到我在這裏的jsfiddle例如: http://jsfiddle.net/metaxos/JvaRW/2/

任何幫助表示讚賞。

回答

0

你需要某種方式來識別標籤proc'd的新標籤。您可以在選項卡3上放置一個屬性,以指定用哪個選項卡打開它。

addTab('tab-3', this.id); // this.id would be the id of the triggering tab 

function addTab(newTabId, triggerId) { 
    li = '<li><a href="#tabs-3">NEW TAB</a><span openerId='" + triggerId + "' class="ui-icon ui-icon-close" role="presentation">close</span></li>' 
} 

從您的刪除功能裏面,搶ID,並用它來單擊該選項卡:

var theTab = $("#tab-3").attr('openerID'); 

$("#" + theTab).click(); 
+0

謝謝。可以從span中獲取openerId,但$(「#tabs-3」)。prop('openerId')會帶來'undefined'。同時在兩者上設置相同的名稱。我更新了JSFiddle:[鏈接] http://jsfiddle.net/metaxos/JvaRW/6/ – metaxos

+0

我的不好。 .prop不會返回任何內容,因爲該值是您創建的元素的屬性。嘗試使用.attr(解決方案更新)。請注意,您將返回的標識將是鏈接的標識,而不是標籤的標識。您可能需要對id進行一些解析才能找到您的標籤。您還需要在選項卡(li元素)上放置id以便能夠通過id選擇器選擇它們。 – Bic

+0

這裏是工作[小提琴](http://jsfiddle.net/JvaRW/7/) – Bic