カスタムプラグインで開いているアコーディオンを覚えようとしています。最初のアコーディオンはデフォルトで開いているため、次のようになります。
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));
これは機能しますが、最初のアコーディオンを削除してから 2 番目のアコーディオンをクリックすると、値が重複します[1,1]
。毎回null値をすでに削除しているため、これが原因ですが、アコーディオンを切り替えるとオブジェクトから削除されるように値を適切に取得する方法がわかりません。
[0,3]
= アコーディオン 1 と 4 が開いている
[0,1]
= アコーディオン 1 と 2 が開いている