手风琴从localStorage变量设置为活动
问题描述:
我有一个jQuery UI手风琴,我需要记住它的状态(哪个标题是最后打开的)。手风琴从localStorage变量设置为活动
这里是我的挥杆吧:
var storedActive = localStorage.getItem("storedActive");
if (isNaN(storedActive)){
storedActive = false;
}
console.log(storedActive);
jQuery('#accordion').accordion({
heightStyle: "content",
collapsible: true,
header: 'h4',
active: storedActive,
activate: function(event, ui){
if(ui.newHeader.context){
storedActive = ui.newHeader.context.id.slice(-1); //getting id of clicked header
}else{
storedActive = false;
}
localStorage.setItem("storedActive", storedActive);
}
});
这console.log(storedActive)
在第5行证明,最后点击标题的值被记住和正确restotred。问题在于手风琴没有打开任何标题。
奇怪的是,当我手动输入值storedActive
时,手风琴打开标题,因为它应该。当从localStorage恢复值时,它只是有一些问题。
答
我从localStorage获取变量时忘记使用parseInt。现在一切正常。 Thx Ninsly!
var storedActive = parseInt(localStorage.getItem("storedActive"));
if (isNaN(storedActive)){
storedActive = false;
}
console.log(storedActive);
jQuery('#accordion').accordion({
heightStyle: "content",
collapsible: true,
header: 'h4',
active: storedActive,
activate: function(event, ui){
if(ui.newHeader.context){
storedActive = ui.newHeader.context.id.slice(-1); //getting id of clicked header
}else{
storedActive = false;
}
localStorage.setItem("storedActive", storedActive);
}
});
答
我用这个:
$(".accordion").accordion({
activate: function(event, ui) {
localStorage.setItem("AccordionId", $(this).accordion("option", "active"))
},
active: parseInt(localStorage.getItem("AccordionId"))
}
这个手风琴替换“AccordionId”通过一个唯一的ID,如果你在你的页面得到多个手风琴。
它也适用于Jquery Tabs