АТ
Александр Тумашов

Уменьшение товара в корзине js/jquery

Подскажите пожалуйста как исправить, есть код (нашёл его на ютубе в видеоуроке по созданию корзины), при добавлении товара в корзину всё ок, товар плюсуется, при уменьшении товара, значение доходит до 0, а дальше идёт в минус, то-есть -1, -2,-5,-10 и т. д 😞
Как это пофиксить? Кто подскажет буду очень сильно благодарен 🙂

Вот код :
var cart = {};
function loadCart() {
//Проверка есть ли в localStorage запись cart
if (localStorage.getItem('cart')) {
//если есть - расшифровываю и записываю в переменную cart
cart = JSON.parse(localStorage.getItem('cart'));
console.log(isEmpty(cart));
showCart();
}
else {
$('.main-cart').html('Корзина пуста!');
}
}

function showCart() {
if (!isEmpty(cart)) {
$('.main-cart').html('Корзина пуста!')
}
else {
$.getJSON('goods.json', function (data) {
var goods = data;
var out = '';
for (var id in cart) {
out += `x`;
out += ``;
out += ` ${goods[id].name }`;
out += ` -` ;
out += `${cart[id] }`;
out += ` +` ;
out += cart[id]*goods[id].cost;
out += '
';
}
$('.main-cart').html(out);
$('.del-goods').on('click', delGoods);
$('.plus-goods').on('click', plusGoods);
$('.minus-goods').on('click', minusGoods);
});
}
}

function delGoods() {
//Удаляем товар из корзины
var id = $(this).attr('data-id');
delete cart[id];
var value = parseInt($input.val());

if (value > 1) {
value = value - 1;
} else {
value = 0;
}

$input.val(value);
saveCart();
showCart();
}

function plusGoods() {
//Добавляем товар в корзину
var id = $(this).attr('data-id');
cart[id]++;
saveCart();
showCart();
}

function minusGoods() {
//Уменьшаем товар в корзине
var id = $(this).attr('data-id');
if (cart[id==1]) {
delete cart[id];
}
else {
cart[id]--;
}
cart[id]--;
saveCart();
showCart();
}

function saveCart() {
//Сохраняю корзину в localStorage
localStorage.setItem('cart', JSON.stringify(cart));//Корзину в строку
}

function isEmpty(object) {
//Проверка корзины на пустоту
for (var key in object)
if (object.hasOwnProperty(key)) return true;
return false;
}

$(document).ready(function () {
loadCart();
});

ЕП
Елена Печенина

После нажатия на кнопку уменьшения количества товара добавь проверку, если количество - 1 равно нулю то удалять товар из корзины

Ирина Алмазова
Ирина Алмазова

Гоша Дударь?))

Похожие вопросы
Как можно реализовать категории JSON & JQUERY?
Анимированные плитки jquery/js
Помогите переписать код с jQuery на JS.
Jquery/Js Есть элементы с классом status и у каждого есть свой id, как найти определенный элемент по его классу и id?
Как в jquery прописать размеры фото? jquery прописать размеры фото?
Маска для поля ввода любой длины. Автоподгонка к нужному формату. JS, jQuery плагины.
Сохранение запроса Jquery
Ajax. jQuery. Передать все значения табицы БД из PHP в JS и вывести их на экран. PHP 7.3
Есть проблема с AJAX (JQuery)
JQuery собираю калькулятор