Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Раздвижное меню на Куках (https://javascript.ru/forum/misc/65551-razdvizhnoe-menyu-na-kukakh.html)

ДмитРок123 25.10.2016 13:42

Раздвижное меню на Куках
 
как можно сделать что бы был один скрипт на 6 раздвижных блоков?
когда больше одного положение сохраняется только последнего открытого блока. можно как то подключить localStorage?
не хочется скрипт на каждый блок делать...

вот сам скрипт:

$(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 h20.navigation_head:first').addClass('active_navigation');
}
};
     $('#navigation h20.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 h20.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 дня для всего сайта.
});
}
});

ДмитРок123 25.10.2016 13:44

вот с боку если открыть 2 меню, то сохраняется последнее( (Модификации)

ksa 25.10.2016 15:25

ДмитРок123, используй циклы и более сложное формирование "имен". ;)

num_open_ul_1, num_open_ul_2, ..., num_open_ul_N

ДмитРок123 25.10.2016 18:43

все равно не понял:cray:

ksa 26.10.2016 08:54

Цитата:

Сообщение от ДмитРок123
все равно не понял

Тогда начинай делать простенький тестовый пример на котором можно что-то показать...


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