簡體   English   中英

jQuery UI Tabs-Cookie與選擇剛剛添加的選項卡之間發生沖突?

[英]jQuery UI Tabs - conflict between cookie & select just added tab?

我正在使用jquery.cookies刷新后使選項卡保持選中狀態。

我還希望在創建新標簽后立即選擇它。

使用jQuery UI指令,我目前有:

    var cookieName = 'stickyTab';

    $(".tabs").tabs({
        fx: {
            opacity: 'toggle',
            duration: 'fast'
        },
        selected: ( $.cookies.get( cookieName ) || 0 ),
                    select: function( e, ui )
                {
                $.cookies.set( cookieName, ui.index );
                }
    });

    var $tabs = $('.tabs').tabs({
    add: function(event, ui) {
        $tabs.tabs('select', '#' + ui.panel.id);
    }
});

不幸的是,這行不通-當我創建一個新標簽時,以前打開的標簽仍保持選中狀態(也許是因為cookie覆蓋了select函數?

我的選項卡是通過PHP POST創建的,並且從DB檢索數據並循環創建LIDIV元素。 (即,我的標簽頁不是直接從JS創建的)。

有人建議解決此問題嗎?

謝謝!

您的錯誤源於您僅通過JavaScript更新cookie,而是在頁面重新加載時通過PHP添加新標簽的事實。 這會導致附加新標簽,但未與您的Cookie同步。

由於jQuery UI Tabs selected屬性是一個索引。 標簽是通過數組創建的,很簡單:

setcookie('stickyTab',count($array)-1);
// this will set the selected tab to the last appended tab

請注意,僅在附加新選項卡時才需要運行此語句。 否則,您將覆蓋通過JS設置的cookie。

如果您還有其他問題,請務必發表評論,我們將嘗試解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM