【问题标题】:jQuery UI Accordion + Cookies - Closed by Default?jQuery UI Accordion + Cookies - 默认关闭?
【发布时间】:2012-07-19 23:21:37
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery jquery-ui


    【解决方案1】:

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

    【讨论】:

    • 为什么需要$.cookie('saved_index', null); 线路?
    • @FilipSpiridonov 确实,不需要这条线,没有它也能正常工作。
    【解决方案2】:
    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。

    【讨论】:

    • 这解决了问题 #1(在首次访问时显示为折叠)。但是,我似乎仍然无法记住用户是否折叠了菜单。 (确保所有菜单都已关闭,然后点击刷新)。 jsfiddle.net/77xC9/25
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2019-07-29
    相关资源
    最近更新 更多