1

我有这段代码,它使用 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 = 'stickyAccordion';

    $( '#accordion' ).accordion( {
        active: ( $.cookies.get( cookieName ) || 0 ),
        change: function( e, ui )
        {
    $.cookies.set( cookieName, $( this ).find( 'h3' ).index ( ui.newHeader[0] ) );
        }
    } );
} );

在我的 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

2

cookie 代码很好,但 jQuery UI Accordion API 已随着您的升级而更改,change因此不再是有效事件 - 它已更改为activate. 我们还可以调整activate方法的主体,使其比每次都重新查询标题更有效。

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

这是特定的JS:

$(function () {
    var cookieName = 'stickyAccordionNewAPI',
        $accordion = $('#accordion'),
        $headers = $accordion.children('h3');

      $accordion.accordion( {
          active: ($.cookies.get(cookieName ) || 0),
          activate: function (e, ui) {
              $.cookies.set(cookieName, $headers.index(ui.newHeader));
          }
      });
});

它不像 UI 选项卡所经历的那样剧烈的变化,但仍然是一个变化。

于 2013-02-07T11:21:58.483 回答