Записать свойства блока в кукис
При клике на
.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, время: 20:53. |