• Страница 1 из 1
  • 1
Форум Studio AD » Сайтостроение » Общий форум по Javascript » Сохранение функции
Сохранение функции
Андрей
Дата: Воскресенье, 15.11.2009, 02:28 | Сообщение # 1
шептун
Группа: Проверенные
Пользователь №: 189
Сообщений: 65
Получено оценок: 11
Вопрос такой:
есть информационный блок (демка в аттаче),
как сделать так, чтоб при перезагрузке, или переходе на другую страницу, блоки котрые были перед этим открыты, оставались открытыми?
Прикрепления: inf.rar (2.6 Kb)


Сообщение отредактировал Андрей - Воскресенье, 15.11.2009, 02:29
  
chu4___x
Дата: Воскресенье, 15.11.2009, 03:39 | Сообщение # 2
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Ссылки для ознакомления.
http://helper.ucoz.ru/publ/coding/cookie_kukisy/2-1-0-14
http://webcodes.ru/publ/1-1-0-631


«POST данные для модулей системы»
  
Aleko
Дата: Воскресенье, 15.11.2009, 20:59 | Сообщение # 3
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Андрей, либо использовать часть в адресе страницы как у меня на главной. http://studioad.ru?какой_блок_открыть

Бесплатные обои.
  
Андрей
Дата: Понедельник, 16.11.2009, 05:08 | Сообщение # 4
шептун
Группа: Проверенные
Пользователь №: 189
Сообщений: 65
Получено оценок: 11
Aleko, ...? не понял про что ты.
chu4___x, спасибо, инфа полезная, но мне пока в такие дебри рано лезть
  
Aleko
Дата: Понедельник, 16.11.2009, 06:37 | Сообщение # 5
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Андрей, использовать search или hash данные в теле ссылки, чтобы уже по ним ориентироваться, что показать на странице. алгоритм простой:

Code
берем ссылку http://site.ru#main

<script>
var par = document.location.hash; // получаем хэш из ссылки
// задаем варианты реагирования
var todo = {  
       '#main':function(){ что либо },
       '#enother':function(){ ещё что то }
       }
todo[par](); // выполняем
</script>


Бесплатные обои.
  
Андрей
Дата: Понедельник, 16.11.2009, 15:57 | Сообщение # 6
шептун
Группа: Проверенные
Пользователь №: 189
Сообщений: 65
Получено оценок: 11
Quote (Aleko)
http://studioad.ru?какой_блок_открыть

по ссылке открывается только главная страница, я так понимаю, должно быть что-то ещё?
Quote (Aleko)
использовать search или hash данные в теле ссылки, чтобы бла-бла-бла

Тоесть к ссылкам приписывать #что-то, или скрипт сам должен это делать?


Пробовал разобраться с куками.
У меня есть такой скрипт:
Code
<script>
var $j = jQuery.noConflict();

function switchStyle(styleName){
  if (styleName){
   $j('article').removeClass();
   $j('#styleSwitch li').removeClass('selected');
   $j('#' + styleName).addClass('selected');
   $j('article').addClass(styleName);
  }
  createCookie('style', styleName, 365);
}

$j(document).ready(function(){
  $j('#styleSwitch li#style').addClass('selected');
  $j('#styleSwitch li').bind('click', function(){
   switchStyle(this.id);
   return false;
  });
  var c = readCookie('style');
  if (c) switchStyle(c);
});

function createCookie(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 readCookie(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) {
  createCookie(name,"",-1);
}
</script>

Тут к <article> добавляется класс .style
а к выделенному списку <li id style1(234) класс .selected
Все это сохраняется в кукисах,
в примере по которому был вопрос, добавляется не класс, а только изменяется style="height: 0pt;" на style="height: auto; opacity: 1;"
Вот я и думаю, как ЭТО присобачить к тому что выше


Сообщение отредактировал Андрей - Понедельник, 16.11.2009, 16:08
  
chu4___x
Дата: Понедельник, 16.11.2009, 17:14 | Сообщение # 7
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Андрей, почему у тебя функции куков стоят после из вызова?
зы. ты видишь что у тебя за спиной? :D


«POST данные для модулей системы»
  
Андрей
Дата: Понедельник, 16.11.2009, 17:33 | Сообщение # 8
шептун
Группа: Проверенные
Пользователь №: 189
Сообщений: 65
Получено оценок: 11
chu4___x,
работает и ладно ;)
  
Aleko
Дата: Понедельник, 16.11.2009, 21:59 | Сообщение # 9
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Quote (chu4___x)
почему у тебя функции куков стоят после из вызова

В случае если функция обявляется как функция
Code
function i(){ что то }
так можно делать. И вызываться она будет откуда угодно. А вот если функция присваивается переменной, например
Code
var i = function(){ что то }
то вызвать её можно будет только после объявления.


Бесплатные обои.
  
Форум Studio AD » Сайтостроение » Общий форум по Javascript » Сохранение функции
  • Страница 1 из 1
  • 1
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.