3

jQuery UIアコーディオンを使用すると、Cookieを使用して、ページを更新するときに最後のアクティブな状態を記憶することに成功しましたが、次のことはできません。

  1. 最初の訪問時に崩壊するように設定

  2. ユーザーが開いた後に手動で折りたたまれたかどうかをCookieに記憶させる

「アクティブ」オプションで条件付きステートメントを使用して関数を作成しようとしましたが、失敗しました。

http://jsfiddle.net/77xC9/18/

jQuery(document).ready(function(){
        var act = 0;
        $( "#accordion" ).accordion({
            create: function(event, ui) {
                //get index in cookie on accordion create event
                if($.cookie('saved_index') != null){
                   act =  parseInt($.cookie('saved_index'));
                }
            },
            change: function(event, ui) {
                //set cookie for current index on change event
                $.cookie('saved_index', null);
                $.cookie('saved_index', ui.options.active);
            },
            active:parseInt($.cookie('saved_index')),
            collapsible: true
        });
    });

</ p>

4

2 に答える 2

11

共有コードは jQuery UI 1.9 以降では機能しません。次のコードは機能します!

jQuery(document).ready(function() {
    $("#accordion").accordion({
        activate: function(event, ui) {
            $.cookie('saved_index', $("#accordion").accordion("option", "active"));
        },
        active: parseInt($.cookie('saved_index')),
        collapsible: true
    });
});
于 2013-05-07T17:16:48.783 に答える
1
jQuery(document).ready(function(){
    $( "#accordion" ).accordion({
        change: function(event, ui) {
            $.cookie('saved_index', ui.options.active !== false ? ui.options.active : null);
        },
        active: $.cookie('saved_index') != null ? parseInt($.cookie('saved_index')) : false,
        collapsible: true
    });
});

追記: ページをローカル ファイルとして開いた場合、Google Chrome は Cookie を受け入れません。

于 2012-07-20T00:00:57.730 に答える