保存jQuery UI选项卡的状态

时间:2013-01-04 15:53:40

标签: jquery jquery-ui jquery-ui-tabs

我正在使用jQuery UI 1.9,并且我已经实现了标签小部件,就像在演示页面上详细说明的那样。 PHP动态地在选项卡内提供数据。

<script>

$(function()
    {
        $( "#tabs" ).tabs(
            {
                collapsible: true                   
            });
    });

</script>

<div id="tabs">

    <ul>
        <li><a href="#holdings">Holdings</a></li>
        <li><a href="#personal">Personal</a></li>
        <li><a href="#account">Account</a></li>
    </ul>

    <div id="holdings">
        blah blah blah
    </div>

    <div id="personal">
        blah blah blah
    </div>

    <div id="account">
        blah blah blah
    </div>

</div>

我的问题是 - 如何保存标签的状态?因此,如果我正在查看一个客户端,并打开“个人”选项卡,如何加载下一个客户端,并自动显示相同的选项卡?

我环顾网络,以前的答案指向使用cookie选项。测试失败和一些进一步的研究表明这个功能在1.9中被弃用了,所以我不确定是否有办法再这样做了?

由于

2 个答案:

答案 0 :(得分:1)

似乎jQuery UI摆脱了维持最新实现的状态。

之前,使用jQuery选项卡保持跨页面加载的状态非常简单。这是使用新代码执行此操作的一种可能方法。它仍然很容易,只是有点不同。

$("#tabs").tabs({
    activate: function (e, ui) { 

    $.cookie('selected-tab', ui.newTab.index(), { path: '/' }); 

}, 
   active: $.cookie('selected-tab')  
});

答案 1 :(得分:0)

以下是我将如何实现会话跟踪变量......

$(function()
    {
        $( "#tabs" ).tabs(
            {
               **create: function( event, ui ) {
                    //use the create method to see if a 'client-tab-index' session 
                    //variable is set.  if so, use it to open the needed tab. if not
                    // do nothing.
                },**
                collapsible: true  ,
                **activate: function( event, ui ) {
                      //use the activate method to store the current active tab
                      //to a 'client-tab-index' session variable.  the current tab 
                      //index value is referenced with ui.newTab
                }**
            });
    });

</script>

<div id="tabs">

    <ul>
        <li><a href="#holdings">Holdings</a></li>
        <li><a href="#personal">Personal</a></li>
        <li><a href="#account">Account</a></li>
    </ul>

    <div id="holdings">
        blah blah blah
    </div>

    <div id="personal">
        blah blah blah
    </div>

    <div id="account">
        blah blah blah
    </div>

</div>

我只是为可能的解决方案提供一些逻辑。它应该有助于你开始。