Выпадающее меню + cookie?

Доброго времени суток.

Есть вертикальное выпадающее меню добавлена возможность оставаться разделам меню открытыми (или закрытыми, в зависимости от выбора пользователя) с помощью cookie

Как поправить код - что бы не один раздел МЕНЮ оставался открытым или закрытым , а несколько

Вот код

<html>
<head>

 
 
 
<script type='text/javascript' src='jquery-1.7.2.min.js'></script>
<script type='text/javascript' src='jquery.cookie.js'></script>
 

 
<style type="text/css">

#navigation h2:hover, #navigation h2.navigation_head:hover {
 cursor: pointer;
}
.navigation_body {
 display:none;
}		
	
</style>	
 
</head>
<body>

 <div id='navigation'>
    <h2 class='navigation_head'>Старт</h2>
	<div class='navigation_body'>  
  ССЫЛКА 1
  </div>
        </div>
		
		<br>
 
  <br>
 <div class='navigation_body'>
  ССЫЛКА 2
  </div>
  
  
<script>
$(document).ready(function(){
     if($.cookie('num_open_ul')){ // проверили, есть ли запись в печеньках
     if($.cookie('num_open_ul') != 0){ // и эта запись не равна 0
     var number_eq = parseInt($.cookie('num_open_ul')-1);
     $('.navigation_body').eq(number_eq).show().prevAll('#navigation h2.navigation_head:first').addClass('active_navigation');
}
};
     $('#navigation h2.navigation_head').click(function(){ // при клике сработает эта функция
     if(!$(this).next().is(':visible')){
     $('div.navigation_body').siblings('div.navigation_body').slideUp(500); // если другие открыты- закрыли все, кроме текущего
}
  $(this).next('div.navigation_body').slideToggle(500).siblings('div.navigation_body').slideUp(500);
    $(this).toggleClass('active_navigation').siblings('#navigation h2.navigation_head').removeClass('active_navigation'); // открытому добавили класс, чтобы сменить стиль
     setTimeout(fncookie, 600); //сама запись в печеньки с задержкой, дабы скрипт до записи успел завершить работу (500мс- скорость, задержка- 600мс)
});
     function fncookie(){ // сама функция записи
     var number_open_ul = 0;
     var i = 0;
     $('div.navigation_body').each(function(){
     i++;
     if($(this).is(':visible')){
     number_open_ul = i;
}
  $.cookie('num_open_ul', number_open_ul, {expires:3, path:'/'}); // хранить 3 дня для всего сайта.
});
}
});
</script>		
</body>
 
</html>


ССЫЛКА 2 не отображается

Подскажите что именно исправить ?

Вообще это будет не меню !

При заходе на страницу человек нажимает ссылку ( МЕНЮ ) и на сайте будут блоки div скрытые изначально display:none

У каждого div будет своё содержимое - но надо что бы они все отобразились на сайте пока опять не нажмёшь на ссылку ( МЕНЮ ) то есть не удалишь куки
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 2
Parfenctr
@Parfenctr Автор вопроса
Удаляю эту строку Всё равно не открывает все меню
$('div.navigation_body').siblings('div.navigation_body').slideUp(500); // если другие открыты- закрыли все, кроме текущего
Ответ написан
Комментировать
@fedornabilkin
Каждый блок назвать уникально и фиксировать их состояния. Собирать данные в массив, сериализовать и писать в куки. Получить данные из куки, десериализовать в массив и придать блокам соответствующее состояние.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы