2

我有这段代码,它使用 cookie 使 jquery 选项卡选择通过刷新保持不变

问题是它只适用于 jQuery UI 1.7.2 和 jQuery JavaScript Library v1.4.1

如果我更新到 jQuery UI - v1.10.0 和 jQuery JavaScript Library v1.9.0,它不会再持续存在(没有错误,只是不会在页面加载时持续选择选项卡)

有谁知道为什么?

这是代码

$( function(){
  var cookieName = 'stickyTab';
  $( '#tabs' ).tabs( {
     selected: ( $.cookies.get( cookieName ) || 0 ),
     select: function( e, ui ){
       $.cookies.set( cookieName, ui.index );
     }
  } );
} );

在我的 html 中我有

    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="jquery-ui.js"></script>
    <script type="text/javascript" src="jquery.cookies.js"></script>

cookie 由http://code.google.com/p/cookies/提供

4

1 回答 1

3

cookie 代码很好,但 jQuery UI Tabs API 已随着您的升级而改变。

  1. selected不再是一个有效的选项——它已被重命名为active.
  2. select不再是有效事件——它已更改为activate.
  3. 传入的参数的index属性已被删除,留下更多工作要做以确定哪个选项卡刚刚激活。uiactivate

这是正在使用的新 API 的现场演示:http: //jaaulde.com/test_bed/stickytabNewAPI/

这是特定的JS:

    $(function () {
        var cookieName = 'stickyTabNewAPI',
            $tabs = $('#tabs'),
            $lis = $tabs.find('ul').eq(0).find('li');

        $tabs.tabs({
            active: ($.cookies.get(cookieName) || 0),
            activate: function (e, ui) {
                $.cookies.set(cookieName, $lis.index(ui.newTab));
            }
        });
    });

我可以理解从选择到激活的名称更改等。但是,我不明白他们为什么删除了参数的index属性ui。它使更多的工作......

于 2013-01-29T14:44:25.327 回答