Хорошо. Я добавил >
, где это было необходимо. Кроме того, номер index (), который мы собирали, учитывал первое значение li
в ul.menu
, которое не имеет класса .parent
. Это нормально, но я просто должен был убедиться, что мы установили индекс для полного набора li
в ul.menu
, не ограничивая коллекцию li.parent
Дайте мне знать, как это работает для вас.
$(document).ready(function() {
var cookieName = 'activeMenus';
var openMenus = (jQuery.cookie(cookieName) == null) ? 0 : jQuery.cookie(cookieName).substring(1).split(',');
var wookie = '';
jQuery('ul.menu > li.parent > ul').css('display', 'none');
if (openMenus != 0) {
for (var i = 0; i < openMenus.length; i++) {
alert('Opening: ' + openMenus[i]);
jQuery('ul.menu > li').eq(openMenus[i]).children('ul').css('display', 'block');
}
}
jQuery('ul.menu span.topdaddy').click(function() {
jQuery(this).next().slideToggle('slow', function() {
jQuery('ul.menu > li.parent > ul:visible').each(function() {
wookie += ',' + jQuery(this).parent().index();
jQuery.cookie(cookieName, wookie);
});
});
wookie = '';
});
});
Этот код:
jQuery('ul.menu li').children('ul:visible').each(function()
{
wookie += ',' + jQuery(this).parent().index(); // Build the index list
jQuery.cookie(cookieName, wookie);
});
... похоже, получает индекс элемента li
, который является потомком ul.menu
.
Пока этот код:
jQuery('ul.menu li ul').eq(openMenus[i]).css('display', 'block');
... похоже использует индекс сверху, но для другого набора элементов (ul
, который является дочерним по отношению к индексу, который вы сохранили в cookie).
Похоже, вы берете индекс ul.menu li
и используете его на ul.menu li ul
.