Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Cookie + Accordion (https://javascript.ru/forum/jquery/35316-cookie-accordion.html)

modestes 07.02.2013 11:02

Cookie + Accordion
 
Приветствую!

Имеется менюшка
$(document).ready(function() {
	$('ul.leftMenu ul').each(function(i) {
		if ($.cookie('submenuMark-' + i)) {  
			$(this).show().prev().removeClass('collapsed').addClass('expanded'); 
		}else {
			$(this).hide().prev().removeClass('expanded').addClass('collapsed');
		}
		$(this).prev().addClass('collapsible').click(function() { 
			var this_i = $('ul.leftMenu ul').index($(this).next()); 
			if ($(this).next().css('display') == 'none') {
				$(this).next().slideDown(200, function () { 
					$(this).prev().removeClass('collapsed').addClass('expanded');
					cookieSet(this_i);
				});
			}else {
				$(this).next().slideUp(200, function () { 
					$(this).prev().removeClass('expanded').addClass('collapsed');
					cookieDel(this_i);
					$(this).find('ul').each(function() {
						$(this).hide(0, cookieDel($('ul.leftMenu ul').index($(this)))).prev().removeClass('expanded').addClass('collapsed');
					});
				});
			}
		return false;
		});
	});
});

//Тут запись в куки
function cookieSet(index) {
	$.cookie('submenuMark-' + index, 'opened', {expires: null, path: '/'}); 
}
function cookieDel(index) {
	$.cookie('submenuMark-' + index, null, {expires: null, path: '/'}); 
}


Проблема в том что при переходе из этого меню на любую страничку куки не очищаются, т.е. все ранее открытые подпункты раскрыты.

Хотя я прописал (может не правильно, с куками в меню не связывался)
function cookieDel(index) {
	$.cookie('submenuMark-' + index, null, {expires: null, path: '/'}); 
}


Собственно вопрос, как очистить куки, чтобы относительно последнего открытого подпункта, предыдущие куки отчищались?
Сайт modestes.ru, пощелкайте по левому меню и сами поймете

Deff 07.02.2013 12:30

modestes,
Попробуйте отрицательную дату ? (Для стирания

modestes 07.02.2013 22:16

Цитата:

Сообщение от Deff (Сообщение 232215)
modestes,
Попробуйте отрицательную дату ? (Для стирания

имеете ввиду так?
$.cookie('submenuMark-' + index, null, {expires: -1, path: '/'});


не помогло.

Deff 07.02.2013 22:33

modestes,
Значение должно быть не нулевое
Или так
$.cookie('submenuMark-' + index, 1, {expires: null, path: '/'});
Или так
$.cookie('submenuMark-' + index, 1, {expires:-1, path: '/'});

modestes 07.02.2013 23:31

Не работает, ничего не понимаю, как так.

Deff 07.02.2013 23:47

modestes,
Ну возьмите мое произведение:

http://javascript.ru/forum/misc/3491...ez-cookie.html
Для удаления - setcookie( "Имя",true,-1 )


Часовой пояс GMT +3, время: 12:05.