Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.11.2013, 10:11
Аспирант
Отправить личное сообщение для dolte Посмотреть профиль Найти все сообщения от dolte
 
Регистрация: 04.09.2013
Сообщений: 37

Записать свойства блока в кукис
При клике на
.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
Истекает:	При завершении сеанса посещения сайта


Где ошибка ?
Ответить с цитированием
  #2 (permalink)  
Старый 25.11.2013, 00:47
Аватар для VladShestakov999
Интересующийся
Отправить личное сообщение для VladShestakov999 Посмотреть профиль Найти все сообщения от VladShestakov999
 
Регистрация: 01.06.2013
Сообщений: 28

Не знаю как там на 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
Ответить с цитированием
  #3 (permalink)  
Старый 25.11.2013, 02:45
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

dolte,
http://stackoverflow.com/questions/1...ie-with-jquery
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #4 (permalink)  
Старый 25.11.2013, 11:28
Аспирант
Отправить личное сообщение для dolte Посмотреть профиль Найти все сообщения от dolte
 
Регистрация: 04.09.2013
Сообщений: 37

я читал про работу с куками, но мой конкретный случай у меня не работал, именно стили эллементов.
Ответить с цитированием
  #5 (permalink)  
Старый 25.11.2013, 15:28
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

dolte, в jquery уже есть сохранение кук зачем добавлять свой велосипед?!
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #6 (permalink)  
Старый 25.11.2013, 18:31
Аспирант
Отправить личное сообщение для dolte Посмотреть профиль Найти все сообщения от dolte
 
Регистрация: 04.09.2013
Сообщений: 37

cyber,
Именно со свойствами блоков проблема была, как передать.
второй раз в жизни куки использовать пытаюсь, с селектами проще =)
Ответить с цитированием
  #7 (permalink)  
Старый 18.12.2013, 13:17
Аспирант
Отправить личное сообщение для dolte Посмотреть профиль Найти все сообщения от dolte
 
Регистрация: 04.09.2013
Сообщений: 37

VladShestakov999,
Куки записываются, но после перезагрузки всё равно блок виден
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плавное раскрытие и сворачивание блока StyLLeR jQuery 6 07.07.2014 16:00
Движение по элементам блока без перезапуска функции выпадающеего меню. tutelaris Элементы интерфейса 4 26.04.2013 09:15
вычисление и фиксация ширины блока konstantin-mn jQuery 2 27.08.2012 11:42
слайд панели tadjik1 Элементы интерфейса 22 02.04.2012 17:13
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 16:21