我有一个jQuery UI手风琴,我需要记住它的状态(上一次打开的标头)。

这是我的挥杆动作:

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);
    }
});


第5行中的console.log(storedActive)证明最后一次单击的标头的值已被记住并重新设置。问题在于手风琴没有打开任何标题。

奇怪的是,当我手动输入值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);
    }
});

07-28 07:21