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)}