Я пытаюсь запомнить открытые аккордеоны в пользовательском плагине. Первый аккордеон открыт по умолчанию, так:Добавление/удаление свойств объекта и удаление null
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 открыт
не было бы проще использовать массив с одной записью для каждого аккордеона, а их значения равны true/false? – zeroflagL
Существует большое количество аккордеонов. Во всяком случае я заплатил мой плагин и проверил на нуль, чтобы заменить значения. Я отвечу на свой вопрос сейчас * вздох! * – stabbie
размер массива тоже переменный;) – zeroflagL