Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

Сохранить параметр css в cookie [дубликат]

#javascript #jquery #cookie


        
             
                
                    
                        
                            На этот вопрос уже дан ответ здесь:
                            
                        
                    
                
                        
                            Как записать в cookie присвоенный элементу класс
                                
                                    (1 ответ)
                                
                        
                                Закрыт 3 года назад.
            
                    
Всем привет. У меня есть элемент, свойство которого изменяется при нажатии на пользователем
на определенную кнопку. А именно, ul которому присваивается display: none. Мне нужно,
чтобы это сохранялось при перезагрузке страницы. Как с помощью cookie и jquery сохранять
стиль элемента?

upd. Наверное, некорректно объяснил проблему, приведу все с примером кода. 

$('.odz-toggle').after().next().css("display", "none"); // Убираем лишние блоки
$(".odz-toggle").click(function () {
    $(this).closest('li').siblings().find('div').slideUp('normal');
    $(this).next('ul').slideToggle('normal');
}); // открываем нужный блок при нажатии на кнопку


Необходимо позицию нужного ul'a (открытый или закрытый) сохранить в cookie.
    


Ответы

Ответ 1



Создать куки с параметрами $(document).ready(function(){ $.cookie("background:","red"); }) Считать информацию из кукиз: $.cookie("background:"); Ответ: к дополниному вопросу: Проверяем если елемент закрыт или открыт, затем пишем куки $(document).ready(function(){ $('.odz-toggle').after().next().css("display", "none"); var ter = $('.innersubmenu-ul'); for(i =0; i < ter.length; i++) { if($.cookie('visible'+i) != null) { $('.innersubmenu-ul').eq($.cookie('visible'+i)).css('display', "block"); } if($.cookie('hidden'+i) != null) { $('.innersubmenu-ul').eq($.cookie('hidden'+i)).css("display", "none"); } } $(".odz-toggle").click(function () { $(this).closest('li').siblings().find('div').slideUp('normal'); var ind = $(this).parent().index(); var open = $.cookie('visible'+ind); if(open == "null") { $(this).next('ul').slideToggle('normal'); $.cookie("hidden"+ind ,null); $.cookie("visible"+ind ,$(this).parent().index()); } else { $(this).next('ul').slideToggle('normal'); $.cookie("visible"+ind ,null); $.cookie("hidden"+ind ,$(this).parent().index()); } }); });

Ответ 2



можно с проверкой : если есть куки навешивать стили на элемент, если нет - цеплять событие) jQuery(document).ready(function($){ if(typeof $.cookie('namecookie') === null){ $('кнопка').click(function(){ $.cookie('namecookie',{'display:','none'}); $('элемент').css({'display:','none'}); }); }else{ $('элемент').css($.cookie('namecookie')); } });

Комментариев нет:

Отправить комментарий