Показать сообщение отдельно
  #20 (permalink)  
Старый 05.11.2019, 18:11
Интересующийся
Отправить личное сообщение для sty-wolf Посмотреть профиль Найти все сообщения от sty-wolf
 
Регистрация: 30.10.2019
Сообщений: 19

Сообщение от 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;
		},

Последний раз редактировалось sty-wolf, 05.11.2019 в 18:16.
Ответить с цитированием