在过去的几天里,我一直在尝试创建一个cookie(使用https://github.com/carhartl/jquery-cookie)来记住我的手风琴菜单的开放状态..我已经梳理了谷歌和以前的答案,但到目前为止我有没有运气让它上班。
正在生成手风琴菜单的如果有人能帮忙解释一下,我将不胜感激。
答案 0 :(得分: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 cookies library。如果你想使用carhartl那是一个完美有效的选择。您只需要将$.cookies.set
和$.cookies.get
的号码替换为等效号码。
编辑:我道歉,当我看到你的提问人提到jQuery和手风琴时,我认为你的意思是jQuery UI's accordion。如您所见,它非常简单。由于您未使用UI,因此该答案可能对您无效。如果是这种情况,我可能会在一段时间内为现有解决方案添加cookie支持。
答案 1 :(得分: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似乎是必要的,因为geting id是渲染为字符串。
答案 2 :(得分: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')));
}
});