#javascript #html #jquery #cart
Вопрос:
Я хочу, чтобы количество увеличивалось на панели навигации при каждом нажатии кнопки «добавить в корзину» на товар, но я не понимаю, почему мой код не работает, когда я нажимаю кнопку «Добавить в корзину», счетчик в настоящее время не увеличивается. Если бы кто-нибудь мог сказать мне, чего мне не хватает, или дать мне лучшее решение того, что у меня есть, я был бы признателен, спасибо!
$('.addCart').on('click', function() {
console.log(completedIncrements.indexOf(this.id));
if (completedIncrements.indexOf(this.id) == -1) {
var count = parseInt($("#count").text());
$("#count").html(count 1);
completedIncrements.push(this.id);
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="navbar">
<a href="shoppingcart.html" class="cart">Shopping Cart (<span id="count">0</span>)</a>
<a href="shop.html" class="right">Shop</a>
<a href="contactus.html" class="right">Contact Us</a>
</div>
<a href="shoe1.html"><img id="shoe3" img src="images/shoe1.jpg" alt="shoe1">
<div id="cart1" class="addCart" href="#"><button>Add to cart</button></div>
<a href="shoe2.html"><img id="shoe4" img src="images/shoe2.jpg" alt="shoe2">
<div id="cart2" class="addCart" href="#"><button>Add to cart</button></div>
Комментарии:
1. Где это
completedIncrements
определено? Кроме того, ваш HTML-код выглядит искаженным. Вам не хватает ваших конечных тегов привязки (</a>
).2. ну, ваш код добавляет его только в том случае, если товара нет в корзине. И вы добавляете идентификатор кнопки в массив, а не идентификатор элемента.
Ответ №1:
Я только что проверил твой код. completeIncrements выдает ошибку в консоли и предотвращает выполнение вашей логики. Пожалуйста, предоставьте информацию об этом или используйте приведенный ниже код для ее решения.
$('.addCart').on('click', function() {
var count = parseInt($("#count").text());
$("#count").html(count 1);
})
Ответ №2:
$('.addCart').on('click', function(e) {
e.preventDefault();
var completedIncrements =0;
var count = parseInt($("#count").text());
$("#count").html(count 1);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="navbar">
<a href="shoppingcart.html" class="cart">Shopping Cart (<span id="count">0</span>)</a>
<a href="shop.html" class="right">Shop</a>
<a href="contactus.html" class="right">Contact Us</a>
</div>
<a href="shoe1.html"><img id="shoe3" img src="images/shoe1.jpg" alt="shoe1">
<div id="cart1" class="addCart" href="#"><button>Add to cart</button></div>
<a href="shoe2.html"><img id="shoe4" img src="images/shoe2.jpg" alt="shoe2">
<div id="cart2" class="addCart" href="#"><button>Add to cart</button></div>
Используйте функцию предотвращения по умолчанию, чтобы ссылка не обновлялась, а также удалялся ненужный код
$('.addCart').on('click', function(e) {
e.preventDefault();
var count = parseInt($("#count").text());
$("#count").html(count 1);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>