1

私はこのコードを持っています.Cookieを使用して、jqueryアコーディオンの選択をリフレッシュして持続させます

問題は、jQuery UI 1.7.2 および jQuery JavaScript ライブラリ v1.4.1 でしか機能しないことです。

jQuery UI - v1.10.0 および jQuery JavaScript ライブラリ 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 アコーディオン 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 に答える