-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
108 lines (100 loc) · 3.48 KB
/
script.js
File metadata and controls
108 lines (100 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
let btnCart = document.querySelector("#count-icon");
let cart = document.querySelector(".cart");
let btnClose = document.querySelector("#close-btn");
btnCart.addEventListener("click", showCart);
function showCart() {
cart.classList.add("cart-active");
}
btnClose.addEventListener("click", () => {
cart.classList.remove("cart-active");
});
document.addEventListener("DOMContentLoaded", loadFood);
function loadFood() {
loadContent();
}
function loadContent() {
//remove food items from cart
let btnRemove = document.querySelectorAll(".cart-remove");
btnRemove.forEach((btn) => btn.addEventListener("click", removeItem));
//Product item chage event
let qtyElement = document.querySelectorAll(".cart-quantity");
qtyElement.forEach((input) => input.addEventListener("change", changeQty));
//add to cart
let cartBtns = document.querySelectorAll(".add-cart");
cartBtns.forEach((btn) => {
btn.addEventListener("click", addToCart);
});
updateTotal();
}
//remove cart item function
function removeItem(event) {
if (confirm("Are you Sure to Remove")) {
let title = this.parentElement.querySelector(".cart-food-title").innerHTML;
itemList = itemList.filter((el) => el.title != title);
event.target.parentElement.remove();
loadContent();
}
}
// chnage quantity
function changeQty() {
if (isNaN(this.value) || this.value < 1) {
this.value = 1;
}
loadContent(); //for cart item increase price
}
let itemList = [];
//add cart function
let cartCount = document.querySelector(".cart-count");
function addToCart() {
let food = this.parentElement;
let title = food.querySelector(".food-title").innerHTML;
let price = food.querySelector(".food-price").innerHTML;
let imgSrc = food.querySelector(".food-img").src;
//
let newProduct = { title, price, imgSrc };
//check validate product duplicate
if (itemList.find((el) => el.title == newProduct.title)) {
alert("Product already in cart");
return;
} else {
alert(newProduct.title + " added to cart");
itemList.push(newProduct);
cartCount.textContent = itemList.length;
}
let newProductElement = createCartProduct(title, price, imgSrc);
let element = document.createElement("div");
element.innerHTML = newProductElement;
let cartBasket = document.querySelector(".cart-content");
cartBasket.append(element);
loadContent();
}
//cart product add function
function createCartProduct(title, price, imgSrc) {
return `
<div class="cart-box">
<img src="${imgSrc}" class="cart-img" alt="img" />
<div class="detail-box">
<div class="cart-food-title">${title}</div>
<div class="price-box">
<div class="cart-price">${price}</div>
<div class="cart-amt">${price}</div>
</div>
<input type="number" value="1" class="cart-quantity" />
</div>
<ion-icon name="trash" class="cart-remove"></ion-icon>
</div>
`;
}
function updateTotal() {
let cartItem = document.querySelectorAll(".cart-box");
let totalValue = document.querySelector(".total-price");
let total = 0;
cartItem.forEach((product) => {
let priceElement = product.querySelector(".cart-price");
let price = parseFloat(priceElement.innerHTML.replace("Rs.", ""));
let qty = product.querySelector(".cart-quantity").value;
total = total + price * qty;
product.querySelector(".cart-amt").innerHTML = "Rs." + price * qty;
});
totalValue.innerHTML = "Rs." + total;
}