[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 也是要很小心的,不曉得什麼時候會踩到雷呢 =_=
(本頁面已被瀏覽過 898 次)