手风琴从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