Я создал элементы корзины с набором кнопок (-) (+) на каждом элементе. Как я могу добавить обработчики событий на каждый набор кнопок? Мои кнопки увеличиваются внутри моего javaScript (внутреннего HTML), так что элементы корзины, хранящиеся в localStorage, также могут увеличиваться.
Вот моя целая JavaScript функция для (-) и (+).
function increaseDecrease(){
let increaseQty = document.querySelector(".increaseQuantityButton2");
let decreaseQty = document.querySelector(".decreaseQuantityButton2");
var items = JSON.parse(localStorage.getItem('items')); //This is array
for (var i = 0; i <= items.length; i++){
increaseQty.addEventListener('click', () => { //increaseQty[i]... is having an error.
if(items[i].name == increaseQty.dataset.name){
let quantity = 1 + items[i].quantity;
items[i].quantity = quantity;
localStorage.setItem('items', JSON.stringify(items));
location.reload(true);
}
})
decreaseQty.addEventListener('click', () => {
if(items[i].name == increaseQty.dataset.name){
if(items[i].quantity == 1){
delete items[items[i].name];
localStorage.setItem('items', JSON.stringify(items));
}else{
let quantity = items[i].quantity - 1;
items[i].quantity = quantity;
localStorage.setItem('items', JSON.stringify(items));
location.reload(true);
}
}
})
break;
}
}
//Only first set of buttons are working in this.
Затем вся моя функция для отображения элементов с (-) (+)
function displayCart2() {
var items = JSON.parse(localStorage.getItem('items'));
let container = document.querySelector(".products2");
if(items && container){
items = JSON.parse(localStorage.getItem("items"));
container.innerHTML = "";
Object.values(items).map(item => {
container.innerHTML += `
<div class="products2">
<div class="card">
<div class="row ">
<div class="col-2">
//items img
</div>
<div class="col-10">
<div class="row">
<div class="col-6">
//item's name
</div>
<div class="col-6 text-right">
//item's price
</div>
</div>
<div class="row">
<div class="col-6">
//--(-) (+)--------------------------------------------
<div class="input-group">
<div class="row">
<button class="btn decreaseQuantityButton2" data-name"${item.name}"><span class=" badge-pill" style="margin: 10px; padding-bottom: 5px; background: lightgray; color: white"> – </span></button>
<input type="text" class="form-control text-center" value="${item.quantity}" style="border-radius: 25px; background: lightgray; color: black; width:50px;" name="item1-quantity" >
<button class="btn increaseQuantityButton2" data-name="${item.name}"><span class=" badge-pill" style="margin: 10px; padding-bottom: 5px; background: black; color: white" > + </span></button>
</div>
</div>
</div>
<div class="col-6 text-right">
//item remove button
</div>
</div>
</div>
</div>
</div>
</div>
</div>
`;
});
}
}