Я использую Аккордеон jQuery, и у меня есть два Аккордеона на одной странице.Я хочу сохранить выбранный индекс каждого Аккордеона в куки.Для этого у меня есть следующий код (со ссылкой на библиотеку jquery.cookie.js).
function accordionsInitAll() {
$(document).ready(function () {
accordionInit("#accordion1");
accordionInit("#accordion2");
});
}
function accordionInit(sAccordion) {
var accordion = $(sAccordion);
var index = $.cookie(sAccordion);
var active;
if (index !== null) {
active = accordion.find("h3:eq(" + index + ")");
} else {
active = 0;
}
$(sAccordion).accordion(
{
active: active,
change: function (event, ui) {
var index = $(this).find("h3").index(ui.newHeader[0]);
$.cookie(sAccordion, index);
}
});
}
Каждый раздел Accordion содержит ссылки, которые ссылаются на ту же страницу, на которой включен jQuery (с различными параметрами),Функции работают в том, что какое-то состояние сохраняется.Проблема в том, что поведение кажется случайным.Иногда это работает отлично, иногда cookie активного элемента имеет значение null, когда оно должно иметь значение, а иногда выбранный индекс переключается между двумя Аккордеонами.
Я в замешательстве, и единственное, о чем я могу думать, это то, что это проблема с закрытием, когда какая-то переменная записывается неправильно.
Это проблема с закрытием или у меня естькакая-то другая ошибка, которая вызывает проблему?
Спасибо, Эрик
Редактировать 11/510 с решением
Проблема оказалась в том, что дляпо какой-то причине используемая мной библиотека cookie иногда устанавливала один и тот же файл cookie несколько раз, что приводило к ситуации, когда было два значения cookie с одинаковым ключом.Порядок следования cookie-файлов отличался от порядка чтения, что приводило к странному поведению.
Как только я переключил библиотеку cookie на http://code.google.com/p/cookies/, у меня больше не было проблем.Спасибо всем, кто помог!