1

在过去的几天里,我一直在尝试创建一个 cookie(使用https://github.com/carhartl/jquery-cookie)来记住我的手风琴菜单的打开状态。我在这里梳理了谷歌和以前的答案但到目前为止,我还没有让它发挥作用。

是生成手风琴菜单的代码..

如果有人可以帮助阐明这一点,我将不胜感激..

4

3 回答 3

3

我前段时间写了一个版本,并把它放在网上:http: //jaaulde.com/test_bed/stickyaccordion/

我使用了以下代码:

$(function () {
    var cookieName = 'stickyAccordion';

    $('#accordion').accordion({
        active: ($.cookies.get(cookieName) || 0),
        change: function (e, ui) {
            $.cookies.set(cookieName, $(this).find('h3').index(ui.newHeader[0]));
        }
    });
});

因为这是前一段时间,它使用jQuery 1.4.1 和jQuery UI 1.7.2。

它还使用了我自己的个人JavaScript/jQuery cookie 库。如果你想使用 carhartl's 这是一个完全有效的选择。你只需要用他的等价物$.cookies.set替换我的电话。$.cookies.get

编辑:我很抱歉,当我看到你的问题提到 jQuery 和手风琴时,我以为你的意思是jQuery UI 的手风琴。如您所见,它使事情变得非常简单。由于您没有使用 UI,因此此答案可能对您无效。如果是这种情况,我可能会抽出一些时间为您现有的解决方案添加 cookie 支持。

于 2012-12-28T17:51:00.013 回答
0

就我而言,安装了 cms contao 3.x 和 jquery cookie 插件。用 jquery 1.9 (chrome/ff) 试了一下,它适用于这段代码:

var cookieName = 'myHotCookie';
    $(document).accordion({
        // Put custom options here
        heightStyle: 'content',
        header: 'div.toggler',
        collapsible: true,
        animated: 'slide',
        active : (parseInt($.cookie(cookieName)) || 0),
        activate: function (event, ui) {
            $.cookie(cookieName,parseInt($(this).accordion('option','active')));
        }
  });
于 2013-11-01T04:38:46.910 回答
0

我使用Klaus Hartl的 cookie 插件编写了这个片段:

cookieName = 'myHotCookie';

$(".accordion").accordion({
    'active' : (parseInt($.cookie(cookieName)) || false),
    'header' : 'h3',
    activate: function (event, ui) {
        $.cookie(cookieName,parseInt($(this).accordion('option','active')));
    }
});

parseInt 似乎是必要的,因为获取 id 是作为字符串呈现的。

于 2013-07-04T15:48:24.660 回答