Показать сообщение отдельно
  #1 (permalink)  
Старый 29.08.2012, 12:03
Новичок на форуме
Отправить личное сообщение для taobo Посмотреть профиль Найти все сообщения от taobo
 
Регистрация: 29.08.2012
Сообщений: 4

Обработка события с Local Storage
Добрый день,

пользуюсь плагином jquery.storage. Сделал, чтобы данные записывались с LocalStorage по клику и извлекались из него по клику - вообщем, "избранное" получилось: все заносится и извлекается. Но есть проблема, DOM с избранным из Local Storage не заполняется, пока страницу не обновишь. Т.е. при первом вызове показывает пустой дом, а если страницу обноввить, то заполняет DOM. Где-то накосячил с событиями. Но в силу слабого знакомства с js разобраться не могу. Буду рад помощи.

В коде есть пометки:
$(document).ready(function(){ //ждем когда все подгрузится
$("#myfavor").click(function(){ //если жамкнули на myfavor
	var pr = $("#pr_name").attr("rel"); // pr = name==url; //смотрим rel у ссылки и заносим все это дело в Local Storage
		if (pr) {
			var my_favor = $.Storage.get('my_favor');
			if (!my_favor) { my_favor = ""; }
				
	/* обрезаем длинную строку 
				
			var pr_len = my_favor.length;	
			if (pr_len > 700) {
				my_favor = my_favor.substr(0,700);
			}
				
	/* узнаём последний просмотренный 
				
			crnt = pr.split('==');
			crnt = crnt[1]; //url текущего товара
				
			lst = my_favor.split("||");
			lst = lst[0]; // первый элемент
			lst = lst.split("==");
			lst = lst[1]; // url последнего просмотренного
				
			if (lst != crnt) {
				my_favor = pr + "||" + my_favor;
				$.Storage.set( 'my_favor', my_favor);		
			}
		}
});	
	/* последние просмотренные: результаты для избранного 
	
		$("#my_favor_show").html("<ul></ul>"); //в этом div будет выводится содержание из Local Storage
		var my_favor = $.Storage.get('my_favor');
		my_favor = my_favor.split("||");
		var res = 0;

		$.each(my_favor, function(){
		if ( res > '7' ) { return false; } /* счётчик 
		crnt = $(this)[0].split("==");
		if ( !crnt[1] ) { return false; }
		$("#my_favor_show ul").append("<li class='bit'><p class='aboutseller'><a class='fotofactory' href='/" + crnt[1] + "'>" + crnt[0] + "</a></p></li>");
		res += 1;
		});
	return false;

	
});
Ответить с цитированием