3

使用 jQuery UI Accordion,我成功地使用 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
    });
});

ps:如果您将页面作为本地文件打开,谷歌浏览器不接受 cookie。

于 2012-07-20T00:00:57.730 回答