Сообщение от laimas
|
Код кнопки показать не мешало бы, а то речь словно о неизвестных планетах.
|
вот более развернуто как у меня это устроено
<div class="product">
<div class="product__list">
<div class="product__element">
<img class="product__img" src="smartbasket/img/pizza.png" alt="Пицца">
<div class="product__name">Пицца «Ветчина и грибы»</div>
<div class="product__price"><span class="product__price-number">320</span> Р</div>
<div class="product__size">
<div class="product__size-element" data-sb-curent-price="320" data-sb-curent-size="32" data-sb-curent-id-or-vendor-code="0032pz">32 см</div>
<div class="product__size-element" data-sb-curent-price="260" data-sb-curent-size="26" data-sb-curent-id-or-vendor-code="0026pz">26 см</div>
<div class="product__size-element" data-sb-curent-price="220" data-sb-curent-size="22" data-sb-curent-id-or-vendor-code="0022pz">22 см</div>
</div>
<div class="product__quantity"></div>
<button class="product__add-to-cart-button" data-sb-id-or-vendor-code="0032pz" data-sb-product-size="32" data-sb-product-name="Пицца «Ветчина и грибы»" data-sb-product-price="320" data-sb-product-quantity="1" data-sb-product-img="smartbasket/img/pizza.png">
<i class="fas fa-cart-plus"></i> <span data-sb-id-button="0032pz">Добавить в корзину</span>
</button>
</div>
<div class="product__element">
<img class="product__img" src="smartbasket/img/pizza2.png" alt="Пицца">
<div class="product__name">Пицца «Креветки и грибы»</div>
<div class="product__price"><span class="product__price-number">320</span> Р</div>
<div class="product__size">
<div class="product__size-element" data-sb-curent-price="320" data-sb-curent-size="32" data-sb-curent-id-or-vendor-code="1132pz">32 см</div>
<div class="product__size-element" data-sb-curent-price="260" data-sb-curent-size="26" data-sb-curent-id-or-vendor-code="1126pz">26 см</div>
<div class="product__size-element" data-sb-curent-price="160" data-sb-curent-size="16" data-sb-curent-id-or-vendor-code="1116pz">16 см</div>
</div>
<div class="product__quantity"></div>
<button class="product__add-to-cart-button" data-sb-id-or-vendor-code="1132pz" data-sb-product-size="32" data-sb-product-name="Пицца «Ветчина и грибы»" data-sb-product-price="320" data-sb-product-quantity="1" data-sb-product-img="smartbasket/img/pizza2.png">
<i class="fas fa-cart-plus"></i> <span data-sb-id-button="1132pz">Добавить в корзину</span>
</button>
</div>
<div class="product__element">
<img class="product__img" src="smartbasket/img/pizza3.png" alt="Пицца">
<div class="product__name">Пицца «Сыр,колбаса и оливки»</div>
<div class="product__price"><span class="product__price-number">520</span> Р</div>
<div class="product__size">
<div class="product__size-element" data-sb-curent-price="520" data-sb-curent-size="52" data-sb-curent-id-or-vendor-code="2252pz">52 см</div>
<div class="product__size-element" data-sb-curent-price="260" data-sb-curent-size="26" data-sb-curent-id-or-vendor-code="2226pz">26 см</div>
<div class="product__size-element" data-sb-curent-price="160" data-sb-curent-size="16" data-sb-curent-id-or-vendor-code="2216pz">16 см</div>
</div>
<div class="product__quantity"></div>
<button class="product__add-to-cart-button" data-sb-id-or-vendor-code="2252pz" data-sb-product-size="52" data-sb-product-name="Пицца «Ветчина и грибы»" data-sb-product-price="320" data-sb-product-quantity="1" data-sb-product-img="smartbasket/img/pizza3.png">
<i class="fas fa-cart-plus"></i> <span data-sb-id-button="2252pz">Добавить в корзину</span>
</button>
</div>
addToBasketButton.click(function () {
let productsArr = methods.getProducts() || {}; // получаем данные корзины или создаём новый объект, если данных еще нет
let sbId = $(this).attr("data-sb-id-or-vendor-code"); // ID товара
let getQuantity = 0; // количество товара начинаем считать с 0
let limitationInBasket = 3; // ограничение товара при добавлении в корзину
for (let key in productsArr) {
for (let value in productsArr[key]) {
if (value === 'sbQuantity') {
getQuantity += +productsArr[key][value];
}
}
}
productsArr[sbId] ? $(this).removeClass('button-active').find('span[data-sb-id-button]').text('Добавить в корзину') : $(this).addClass('button-active').find('span[data-sb-id-button]').text('Удалить в корзину');
if (productsArr[sbId]) {
// let beforeClickHtml = $(this).html();
// $(this).text('Товар уже в корзине');
// $('body').append(methods.alertBlock('alreadyAdded'));
// setTimeout(() => {
// $(this).html(beforeClickHtml);
// }, 1500);
// return false;
delete productsArr[sbId]; //Удаляем из массива
methods.setProducts(productsArr); //Обновляем хранилище
methods.getSmartBasketMinState(productsArr, 'updateSmartBasketMin'); // обновляем корзину
methods.commonResult(productsArr, 'updateCommonResult'); //обновляем общий результат
} else {
let productProperties = {};
productProperties.sbId = sbId;
productProperties.sbImg = $(this).data("sbProductImg");
productProperties.sbName = $(this).data("sbProductName");
if (defaults.productSize && defaults.productPrice) {
productProperties.sbSize = $(this).attr("data-sb-product-size");
}
if (defaults.productQuantityWrapper) {
productProperties.sbQuantity = $(this).parents('.' + defaults.productElement).find('.' + inputProductQuantity.attr('class')).val();
} else {
productProperties.sbQuantity = +$(this).data("sbProductQuantity");
}
productProperties.sbPrice = +$(this).attr("data-sb-product-price");
productProperties.sbPrice.toFixed(2);
if (defaults.productQuantityWrapper) {
productProperties.sbPriceCommon = +$(this).attr("data-sb-product-price") * $(this).parents('.' + defaults.productElement).find('.' + inputProductQuantity.attr('class')).val();
productProperties.sbPriceCommon.toFixed(2)
} else {
productProperties.sbPriceCommon = +$(this).attr("data-sb-product-price") * +$(this).data("sbProductQuantity");
productProperties.sbPriceCommon.toFixed(2)
}
// проверяем превышен лимит или нет
if ( limitationInBasket <= getQuantity) {
$('span[data-sb-id-button="'+sbId+'"]').text('Добавить в корзину');//Меняем текст
$(this).removeClass('button-active'); // удалить цвет
$('body').append(methods.alertBlock('limitationInBasket'));
} else { // иначе товар добавлен в корзину
productsArr[sbId] = productProperties;
methods.setProducts(productsArr); //записываем в localStore
smartBasket.empty(); // проверка пустой переменной
smartBasket.append(methods.showProducts(productsArr));
methods.getSmartBasketMinState(productsArr, 'updateSmartBasketMin');
methods.commonResult(productsArr, 'updateCommonResult');
}
}
});
return smartBasket;
},