在jQ / UI升级后,无法使jQ UI选项卡与cookie一起工作

时间:2013-01-29 14:29:46

标签: jquery jquery-ui cookies tabs

我有这段代码,它使用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/

提供

1 个答案:

答案 0 :(得分:3)

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

  1. selected不再是有效选项 - 已重命名为active
  2. select不再是有效事件 - 已更改为activate
  3. 传递到index的{​​{1}} param的ui属性已被删除,还有更多工作要做,以确定哪个标签处于活动状态。
  4. 以下是正在使用的新API的实时演示:http://jaaulde.com/test_bed/stickytabNewAPI/

    这是具体的JS:

    activate

    我可以理解从select到activate等的名称更改。但是,我不理解为什么他们删除了 $(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)); } }); }); param的index属性。这需要更多的工作......