JQuery and its .getJSON are not working, and also how to synchronize asynchronus.getJSON?
First of all, yes, I know there are multiple answers, but none have been able to solve my problem. first I'll show my HTML code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Shop</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
<script src="https://use.fontawesome.com/a565674a9d.js"></script>
<!--MINE-------------------------------->
<script src="JS/jquery.js"></script>
<script src="JS/catalog.js"></script>
</head>
<body>
<nav class="navbar navbar-light">
<div>
<a class="navbar-brand" style="text-align: center;position: fixed; left: 40%;" >
<img src="979709898.png" width="70" height="70" class="d-inline-block align-top" alt="">
Costumer Bay
</a>
<a id="cart" class=" navbar-brand btn btn-danger" style="position: fixed; left: 70%" >
<i class="fa fa-shopping-cart fa-3x" aria-hidden="true"></i>
</a>
</div>
</nav>
<div id="lin1" class="container-fluid" style="padding: 20px;">
</div>
<div id="lin2" class="container-fluid" style="padding: 20px;">
</div>
</body>
</html>
jquery.js is the uncompressed jquery source code
Data.Json is in the JS folder
data.json:
[
{
"id":0,
"name":"Laptop",
"price":50000 ,
"quantity":0
},
{
"id":1,
"name":"Phone",
"price":30000 ,
"quantity":0
},
{
"id":2,
"name":"Desktop",
"price":70000 ,
"quantity":0
},
{
"id":3,
"name":"Headphone",
"price":9000 ,
"quantity":0
},
{
"id":4,
"name":"Tablet",
"price":35000 ,
"quantity":0
},
{
"id":5,
"name":"AntiVirus",
"price":5000 ,
"quantity":0
}
]
Now finally the javascript that doesn't work
catalog.js
let productinfo=[];
let firsttime = true;
$(function () {
console.log("here");
refreshcatalog();
console.log("now where");
let cart = $('#cart');
cart.click(function () { //NOT!WORKING
loadcart();
})
});
function refreshcatalog() {
console.log("no where");
if (firsttime){
console.log('evenhere');
$.getJSON("JS/data.json",function (data) {
console.log(data); //NOT!WORKING
});
}
if(firsttime){
firsttime=!firsttime;}
}
function loadcart() {
console.log("will load cart");
}
DO NOT EVEN PRESS AN EVENT. please guide me, no, I don't know AJAX, so please don't use ajax method to solve.
Please, help
<---- Edit1 ------>
for all those asking for directory structure:
shopping-----
|_ catalog.html
|_ JS(folder) -----
|_ catalog.js
|_ jquery.js
|_ data.json
<--------------------- EDIT 2 -__----------->
Launching a click on an event after changing the format:
$(document).on('click','#button2', function()
{
alert("Dynamic button action");
});
The reason my old old ".click" didn't work would be greatly appreciated. Btw I am using Firefox Developers Edition.
source to share
Below code needs to be changed since your .js and data.json directories are in the same folder.
$.getJSON("JS/data.json",function (data)
console.log(data);
});
Change the code to
$.getJSON("data.json",function (data) {
console.log(data);
});
Please check and let me know if you can connect data or not and then solve another problem.
Lets you change the order of scripts (order)
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
I removed jquery slim as bootstrap uses this, rather I copied your jquery to the top so that bootstrap can use it.
Here comes the edited part.
Please do not remove JS / data.json from $ .getJSON.
Remove your jquery slim and JS / jquery. Try using the below CDN link or I added in the comments
He worked for me at my local.
source to share