Сообщение от Ленча
|
не нашлась ошибка - не люблю оставлять за спиной невыясненные косяки(
|
Так я же вам написал, что вы где-то потеряли вызов finalprice!
Точней там, где у вас происходит обработка события нажатия на кнопку Заказать! Там где обработчик нажатия на
$("#price .uk-button-primary") у вас прописано 2 раза finalprice... перенесите их в конец функции перед return false...
Но это не понимаете! Поэтому вот код...
$("#price .uk-button-primary").each(function() {
$(this).removeAttr("uk-scroll");
}).click(function(event) {
event.preventDefault();
$(this).addClass('selected');
//первым делом по клику обнуляем все переменные
check = 'norecord';
//забираем название товара и цену
title = $.trim($(this).closest('.el-item').find('h4').text());
price = $(this).closest('.el-item').find('.el-meta').text().replace(/\D+/g, "");
img = $(this).closest('.el-item').find('img').attr('src');
//если в корзине уже что-то есть
if ($(".cart .product").children('.item').length > 0) {
//для каждой строки в корзине
$('.cart .product .item').each(function() {
//находим текущий тайтл элемента
currenttitle = $(this).find('.itemname').text();
//сравниваем текущи с тем, что кликнут(title)
//если они совпадают - меняем количество и цену итема
if (currenttitle === title) {
//делаем заметку, что такой итем уже есть
check = "yesrecord";
//получаем значение количества
$input = $(this).find('.incount');
incount = +$input.val();
//прибавляем еще одну штуку
countfin = incount + 1;
//устанавливаем новое значение кол-ва
$input.val(countfin);
$input.change();
//устанавливаем новое значение стоимости итема
innerprice = price * countfin;
//заносим новое значение стоимости в блок
$(this).find('.price').text(innerprice);
}
});
}
//если записи с таким тайтлом нет или вообще нифига нет
if ((check === "norecord") || ($(".cart .product").children('.item').length <= 0)) {
//добавляем запись
$('<div class="item">' + //'<img src="' + img + '" />' +
'<span class="itemname">' + title + '</span>' + '<span class="minus">-</span>' + '<input class="incount" value ="1">' + '<span class="plus">+</span>' + '<span class="price">' + price + '</span>' + '<span class="delete">X</span>' + '<span class="hiddenprice">' + price + '</span>' + '</div>').appendTo($(".cart .product"));
if (number != 'yesfinal') {
$(".product").after("<div class='finalprice'>Итого: <span>" + price + " </span>руб</div>");
number = 'yesfinal';
}
}
//пересчет итога
finalprice();
return false;
});
Сообщение от Ленча
|
А что даст задержка в 500?
|
Оно показало, что вы где-то пропустили finalprice (за 500 мс можно ведь заметить, что итоговая цена вычисляется не сразу при нажатии, а позже, через 500мс, значит где-то не хватает finalprice)
Сообщение от Ленча
|
Буду переписывать все под куки, раз не получилось с хранилищем.
|
Всего-то поменять две строчки! И понять, что оно точно также не сохраняет последнее, потому что это не зависит от хранилища! Вы читать умеете?
У. ВАС. ПРОПУЩЕН. ВЫЗОВ. FINALPRICE.
Сообщение от Ленча
|
Жалко, что не нашлась ошибка - не люблю оставлять за спиной невыясненные косяки(
|
Вам уже указали причину! Вот сейчас даже показали решение с кодом...
Сообщение от Ленча
|
Жалко, что не нашлась ошибка
|
Читай что тебе пишут! Вы даже не пытались найти, где у вас пропущен этот вызов!
Они нам говорили jQuery упрощает разработку... а тут тако-о-е!!!