[jQuery UI] Tabs 的 selected/select 介面修改了…

[jQuery UI] Tabs 的 selected/select 介面修改了…

最近在更新 Chrome plugin 時,突然發現之前用到 jQuery UI 裡面的 Tabs

有些功能不太正常,無法正確取得目前的 tab 頁面,

也沒辦法在點選 tab 時,取得正確的 tab 元素….

 

看了一下,原來是部分介面修改了,

像原本用的 selected/select 現在被換成 active/activate,取得的東西也稍有不同… 

 

下面是原本的程式,用 selected 來設定要顯示的 tab,

而在 select 的 callback 裡面,利用 ui.panel.id 取得新 tab 的元素 id:

$("#divResult").tabs(
{
selected:   $('#' + localStorage.lastFocusTabDivId).index()-1,
select:     function(event, ui)
{
// Record last focused tab div id
localStorage.lastFocusTabDivId = ui.panel.id;
}
});

 

但在我更新 jQuery UI 到 1.11 之後,select/selected 已經被換掉了,

變成 select -> active, selected -> activate,

同時 ui 裡面沒有 panel 屬性,而是有 oldPanel/newPanel,

要取得元素 id 得用 selector,但取出來會有 # 像是 #divTest,

因此我還得將那個 # 移除,原本的程式才會運作成功:

$("#divResult").tabs(
{
active:   $('#' + localStorage.lastFocusTabDivId).index()-1,
activate: function(event, ui)
{
// Record last focused tab div id
localStorage.lastFocusTabDivId = ui.newPanel.selector.substr(1);
}
});

 

看來更新 jQuery / jQuery UI 也是要很小心的,不曉得什麼時候會踩到雷呢 =_=

 

 

(本頁面已被瀏覽過 895 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料