在过去的几天里,我一直在尝试创建一个 cookie(使用https://github.com/carhartl/jquery-cookie)来记住我的手风琴菜单的打开状态。我在这里梳理了谷歌和以前的答案但到目前为止,我还没有让它发挥作用。
这是生成手风琴菜单的代码..
如果有人可以帮助阐明这一点,我将不胜感激..
在过去的几天里,我一直在尝试创建一个 cookie(使用https://github.com/carhartl/jquery-cookie)来记住我的手风琴菜单的打开状态。我在这里梳理了谷歌和以前的答案但到目前为止,我还没有让它发挥作用。
这是生成手风琴菜单的代码..
如果有人可以帮助阐明这一点,我将不胜感激..
我前段时间写了一个版本,并把它放在网上: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 支持。
就我而言,安装了 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')));
}
});
我使用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 是作为字符串呈现的。