Practical week 6: DOM & jQuery
Practical week 6: DOM & jQuery
Add code below to head tag in index.html
:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
Name it: script.js
and place it in res/js/
directory
Add script.js
to index.html
by adding this tag to head:
<script src="res/js/script.js"></script>
Name it: Item.js
and place it in res/js/
directory
Add Item.js
to index.html
by adding this tag to head:
<script src="res/js/Item.js"></script>
And put this code inside Item.js
file:
class Item {
constructor(title, price, image, thumbnails){
this.title = title;
this.price = price;
this.image = image;
this.thumbnails = thumbnails
}
}
Name it: Cart.js
and place it in res/js/
directory
Add Cart.js
to index.html
by adding this tag to head:
<script src="res/js/Cart.js"></script>
Put these lines inside Cart.js
:
class Cart{
constructor() {
this.selected = [];
this.total = 0.0;
}
}
Put these lines inside script.js
:
$(function () {
var cart = new Cart();
var item = new Item(
"Programming books bundle",
50.0,
"res/images/image1.jpg",
[
"res/images/image1.jpg",
"res/images/image2.jpg",
"res/images/image3.jpg",
"res/images/image4.jpg"
]
);
var items = [
new Item("Java Programming", 23.0, "res/images/image5.jpg"),
new Item("Programming in C++", 15.0, "res/images/image6.jpg"),
new Item("Programming and fundamentals of Python", 5.50, "res/images/image7.jpg"),
new Item("My first coding book", 10.90, "res/images/image8.jpg"),
];
init();
function init() {
$("#item-container #item-main-image").attr('src', item.image);
$("#item-container h1").text(item.title + " - " + item.price + "$");
for (let i = 0; i < item.thumbnails.length; i++) {
let img = $('<img>').attr('src', item.thumbnails[i]);
$("#item-container .thumbnails").append(img)
}
for (let i = 0; i < items.length; i++) {
let li = $("<li></li>");
let div = $('<div></div>');
let h4 = $('<h4></h4>');
let img = $('<img>').attr('src', items[i].image);
let a = $('<a href="#"></a>').text(items[i].title + " - " + items[i].price + "$");
let button = $('<button>Add to cart</button>').addClass("add-to-cart").attr('id', i);
h4.append(a);
div.append(img);
div.append(h4);
div.append(button);
li.append(div);
$('.suggested-container ul').append(li)
}
}
});
Put these lines inside script.js
after init();
function call:
$('.add-to-cart').click(function (event) {
let id = $(event.target).attr('id');
let index = cart.selected.indexOf(id);
if (index > -1) {
cart.selected.splice(index, 1);
$(event.target)
.removeClass("remove-from-cart")
.addClass("add-to-cart")
.text("Add to cart");
}
else{
cart.selected.push(id);
$(event.target)
.removeClass("add-to-cart")
.addClass("remove-from-cart")
.text("Remove from cart");
}
refreshAmount();
});
function refreshAmount() {
$('.cart-container span').text(cart.selected.length)
}