jQuery UI Accordion + Cookies - 默认关闭?

时间:2012-07-19 23:21:37

标签: javascript jquery jquery-ui

使用jQuery UI Accordion,我成功地使用cookie来记住刷新页面时的最后一个活动状态 - 但是我无法:

  1. 首次访问时设置为折叠

  2. 如果用户在打开

  3. 后手动折叠,请记住

    我试图在" active"上尝试使用条件语句创建一个函数。选项,但没有成功。

    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
            });
        });
    

2 个答案:

答案 0 :(得分:10)

共享代码在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
    });
});

答案 1 :(得分: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
    });
});

ps:如果您将网页打开为本地文件,则Google Chrome不接受Cookie。