我想在自定义插件中记住开放式手风琴。第一支手风琴默认开启,所以:
var active = [0];
我点击手风琴然后从localStorage
读取以获取值。在我的点击事件中:
var active = JSON.parse(localStorage.getItem(outerName)),
tab = $(this).find('h3').index(ui.tab[0]);
if (tab in active) {
delete active[tab];
} else {
active[tab] = tab;
}
for (var i = 0; i < this.length; i++) {
if (active[i] == null) {
active.splice(i, 1);
i--;
}
}
localStorage.setItem(outerName, JSON.stringify(active));
这是有效的,除非我删除第一个手风琴然后点击第二个手风琴,我将获得重复的值[1,1]
。我已经每次都删除了空值,所以这是原因,但我不知道如何正确获取值,这样如果我切换手风琴它将从对象中删除。
[0,3]
=手风琴1和4已开启
[0,1]
=手风琴1和2已开启
答案 0 :(得分:0)
好的,所以我修补了我的插件,只是从活动字符串中获取数字,但我也修改了我的对象,因为它被破坏了:
if (tab in active && active[tab] !== null) {
delete active[tab];
} else {
active[tab] = tab;
}
我得到[null,1,null],所以现在我覆盖了null,只需用值[0,1,null]替换它,插件只读取0和1。
如此迅速地回答我自己的问题!