дорабатываю корзину, пытаюсь переделать кнопку button click, на checkbox, суть задачи в том, чтобы была одна кнопка "добавить" и при нажатии на эту кнопку, добавлялся товар в корзину, а если ещё раз нажать на эту кнопку удалялся товар из корзины,
a = {
getProducts: function () {
return JSON.parse(localStorage.getItem(e.localStorageName))
},
setProducts: function (t) {
var a = JSON.stringify(t, "", 4);
return localStorage.setItem(e.localStorageName, a), !1
},
deleteProducts: function (e, s) {
var n = t("<button>").attr({
class: "smart-basket__product-delete"
}).html('<span class="smart-basket__delete-icon">×</span>');
return n.click(function (n) {
n.preventDefault();
var r = t(this).data("sbProductDelete");
delete e[r], a.setProducts(e), t(this).parents("." + s.attr("class")).remove(), a.getSmartBasketMinState(e, "updateSmartBasketMin"), a.commonResult(e, "updateCommonResult")
}), n
},
вверху массив данных, в нем имеется метод deleteProducts который удаляет товар из корзины
.product__add-to-cart-button // класс, который добавляет товар
вот код добавления в корзину
stateBasket: function () {
var s = a.getProducts() || {},
n = t("<div>").attr({
class: "smart-basket"
}),
r = t("." + e.buttonAddToBasket);
localStorage.getItem(e.localStorageName), n.append(a.showProducts(s));
var o, i, l, c;
if (e.productQuantityWrapper) {
var u = t("<div>").attr({
class: "smart-basket__quantity-item"
}),
d = t("<button>").attr({
class: "smart-basket__add-item"
}).html("+"),
p = t("<button>").attr({
class: "smart-basket__remove-item"
}).html("-");
o = t("<input>").attr({
class: "smart-basket__product-quantity-state",
min: "1",
step: "1",
pattern: "^[0-9]",
value: "1"
}), u.append(p).append(o).append(d),
d.click(function (a) {
a.preventDefault(), i = t(this).parents("." + e.productElement).find("." + o.attr("class")), l = t(this).parents("." + e.productElement).find("." + e.buttonAddToBasket), c = +t(this).parents("." + e.productElement).find("." + o.attr("class")).val(), c >= 1 ? (c++, i.val(c), l.attr("data-sb-product-quantity", c)) : (i.val(1), l.attr("data-sb-product-quantity", 1))
}),
p.click(function (a) {
a.preventDefault(), i = t(this).parents("." + e.productElement).find("." + o.attr("class")), l = t(this).parents("." + e.productElement).find("." + e.buttonAddToBasket), c = +t(this).parents("." + e.productElement).find("." + o.attr("class")).val(), c > 1 ? (c--, i.val(c), l.attr("data-sb-product-quantity", c)) : (i.val(1), l.attr("data-sb-product-quantity", 1))
}), t("." + e.productQuantityWrapper).append(u)
}
if (e.productSize && e.productPrice) {
var m = t("." + e.productSize);
t("." + e.productElement).find("." + e.productSize + ":first-child").addClass(e.productSize + "_active"), m.click(function (a) {
a.preventDefault(), t(this).parents("." + e.productElement).find("." + e.productSize).removeClass(e.productSize + "_active"), t(this).addClass(e.productSize + "_active");
var s = t(this).parents("." + e.productElement).find("." + e.buttonAddToBasket),
n = t(this).parents("." + e.productElement).find("." + e.productPrice),
r = t(this).attr("data-sb-curent-size");
console.log(r);
var o = t(this).attr("data-sb-curent-price"),
i = t(this).attr("data-sb-curent-id-or-vendor-code");
console.log(i), s.attr({
"data-sb-product-price": o,
"data-sb-product-size": r,
"data-sb-id-or-vendor-code": i
}), n.html(o)
})
} else console.log("Заполните параметры productSize и productPrice");
return a.getSmartBasketMinState(s), r.click(function () {
var s = this,
r = a.getProducts() || {}, // все товары
i = t(this).attr("data-sb-id-or-vendor-code"); // id товара
if (void 0 !== r[i]) {
var l = t(this).html();
return t(this).text("Товар уже в корзине"), t("body").append(a.alertBlock("alreadyAdded")), setTimeout(function () {
t(s).html(l)
}, 1500), !1
}
var c = {};
c.sbId = i, c.sbImg = t(this).data("sbProductImg"), c.sbName = t(this).data("sbProductName"),
e.productSize && e.productPrice && (c.sbSize = t(this).attr("data-sb-product-size")), e.productQuantityWrapper ? c.sbQuantity = t(this).parents("." + e.productElement).find("." + o.attr("class")).val() : c.sbQuantity = +t(this).data("sbProductQuantity"), c.sbPrice = +t(this).attr("data-sb-product-price"), c.sbPrice.toFixed(2), e.productQuantityWrapper ? (c.sbPriceCommon = +t(this).attr("data-sb-product-price") * t(this).parents("." + e.productElement).find("." + o.attr("class")).val(), c.sbPriceCommon.toFixed(2)) : (c.sbPriceCommon = +t(this).attr("data-sb-product-price") * +t(this).data("sbProductQuantity"), c.sbPriceCommon.toFixed(2)), r[i] = c, a.setProducts(r), n.empty(), n.append(a.showProducts(r)), a.getSmartBasketMinState(r, "updateSmartBasketMin"), a.commonResult(r, "updateCommonResult"), t("body").append(a.alertBlock("inBasket"))
}), n
},
<button class="product__add-to-cart-button" data-sb-id-or-vendor-code="005" data-sb-product-name="Iphone 4" data-sb-product-price="7000" data-sb-product-quantity="1" data-sb-product-img="img/iphone-4.png">
<i class="fas fa-cart-plus"></i> Добавить в корзину
</button>
таким образом отловил событие клика
$('.product__add-to-cart-button').click(function() {
alert(1);
});
ну как мне прописать условие чтоб был именно checkbox? и при нажатии одного раза на кнопку товар добавлялся, а при нажатии второго раза на кнопку удалялся из корзины?