Записать свойства блока в кукис
При клике на
.close_scroll мне нужно чтобы блоку .fool_head присвоилось display:none; и записалось в кукисы, чтобы блок больше не показывался при обновлении страницы, как сделать ? Пытаюсь сделать так: function setCookie(name, value, days) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); } else var expires = ""; document.cookie = name + "=" + value + expires + "; path=/"; } function getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; } function eraseCookie(name) { setCookie(name, "", -1); }; $(document).ready(function() { $('.close_scroll').click(function() { if(getCookie('hide') != '0') { setCookie('hide', $(this).val(), 365); }; }); if(getCookie('hide')) { $('.fool_head').val(getCookie('hide')).attr('display', 'none'); }; }); Но не работает, кукисы записываются, вот что в них: Имя: hide Содержимое: Домен: eurokorp.ru Путь: / Для: Любое соединение Доступно для скрипта: Да Создано: среда, 20 ноября 2013 г. 13:05:31 Истекает: При завершении сеанса посещения сайта Где ошибка ? |
Не знаю как там на Jquery, но на чистом JS должно быть так:
function setCookie(name, value, options) { options = options || {}; var expires = options.expires; if (typeof expires == "number" && expires) { var d = new Date(); d.setTime(d.getTime() + expires*1000); expires = options.expires = d; } if (expires && expires.toUTCString) { options.expires = expires.toUTCString(); } value = encodeURIComponent(value); var updatedCookie = name + "=" + value; for(var propName in options) { updatedCookie += "; " + propName; var propValue = options[propName]; if (propValue !== true) { updatedCookie += "=" + propValue; } } document.cookie = updatedCookie; } // возвращает cookie с именем name, если есть, если нет, то undefined function getCookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } window.onload = function(){ // Вешаем обработчик на клик document.getElementsByClassName('close_scroll')[0].onclick = function(){ // и вешаем куку на год при клике setCookie('hide', true, {'path': '/', 'expires': 31536000}); }; // Проверяем кликал ли уже if(getCookie('hide') == true){ // если да, то прячем элемент document.getElementsByClassName('fool_head')[0].style.display = "none"; } } Смотри темы http://learn.javascript.ru/cookie и http://learn.javascript.ru/styles-and-classes |
|
я читал про работу с куками, но мой конкретный случай у меня не работал, именно стили эллементов.
|
dolte, в jquery уже есть сохранение кук зачем добавлять свой велосипед?!
|
cyber,
Именно со свойствами блоков проблема была, как передать. второй раз в жизни куки использовать пытаюсь, с селектами проще =) |
VladShestakov999,
Куки записываются, но после перезагрузки всё равно блок виден |
Часовой пояс GMT +3, время: 10:29. |