Добрый день,
пользуюсь плагином 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;
});