2

私はこのコードを持っています.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 = '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. 渡される paramの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));
            }
        });
    });

select から activate への名前の変更などは理解できますが、 paramのindexプロパティを削除した理由はわかりません。uiそれはより多くの仕事になります...

于 2013-01-29T14:44:25.327 に答える