Javascript and jquery wont work for some reason - javascript

Can someone help me? I wrote simple code in javascript and it wont work for some reason. I tried to figure out but i cant see why. I have downloaded jquery and it is all ok with it, also i tried only javascript code and still same problem. Browser is ok it load jquery and javascript on file i made earlier but doesnt load on this.Here is code:
<!DOCTYPE html>
<html>
<head>
<title>Proba</title>
<script src="jquery-3.3.1.js">
$('#btn').click(function f() {
console.log(1);
});
</script>
</head>
<body>
<button id="btn">Click</button>
</body>
</html>

<head>
<title>Proba</title>
</head>
<body>
<button id="btn">Click</button>
<script src="jquery-3.3.1.js"></script>
<script>
$(document).ready(function(){
$("#btn").click(function(
console.log(1);
))
})
</script>
</body>
Try like this :)

You are binding your event handler, before the browser was able to parse your HTML. So #btn element is not in the DOM yet at this point.
Either wrap you code inside document.ready or move the script to the bottom of the body tag.
1st Approach
<head>
<title>Proba</title>
<script src="jquery-3.3.1.js"></script>
<script>
$(function() {
$('#btn').click(function f() {
console.log(1);
});
});
</script>
</head>
<body>
<button id="btn">Click</button>
</body>
2nd Approach
<head>
<title>Proba</title>
<script src="jquery-3.3.1.js"></script>
</head>
<body>
<button id="btn">Click</button>
<script>
$('#btn').click(function f() {
console.log(1);
});
</script>
</body>

Have you verified "jquery-3.3.1.js" really exists in the current directory? Try instead loading the script through a known host, like Google:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
EDITED: Added working code. Note button checking must be done when document has finally loaded.
<!DOCTYPE html>
<html>
<head>
<title>Proba</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#btn").click(function() {
console.log(2);
});
})
</script>
</head>
<body>
<button id="btn">Click</button>
</body>
</html>

Related

call parital html page using jQuery

I want to call a partial html page using jquery. I have seen this
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="lib/jquery-3.1.0.min.js"></script>
<script type="text/javascript"> $('#result').load('Ajax/test.html'); </script>
<title>Home</title>
</head>
<body>
<div id="result"></div>
</body>
</html>
and in the path Ajax/test.html i have this test.html:
<h1>Hey World</h1>
The problem is it does not load the Hey World into the main page. Also, there is no error in console.
What is the problem?
As with $('#result'), jQuery is unable to find the element as DOM is not ready hence jQueryObject.load method is never invoked.
Wrap your script in $(document).ready or Place your <script> as last-child of <body>(Just before closing body tag(</body>))
There are also DOMContentLoad or window.onload events which makes sure that DOM is loaded but IMO, placing <script> just before </body> is easier option.
<div id="result"></div>
<script>
$('#result').load('test.html');
</script>
You are trying to append to an element that yet does not exists.
Try adding your code in a $(document).ready(), and just before the </body> closing tag.
Like this:
<script>
$(document).ready(function(){
$('#result').load('Ajax/test.html');
});
</script>
</body>
Try changing your <script> tag to include a document.ready:
<script type="text/javascript">
$(document).ready(function () {
$('#result').load('Ajax/test.html');
});
</script>

jQuery click event not working on HTML page

I am having a lot of trouble trying to add text to an existing <p> element using jQuery. I have tried many different methods but nothing has worked so far. Here is the code for the html file:
<!doctype html>
<html>
<head>
<script src="index1.js"></script>
<title>Drinking Game</title>
</head>
<body>
<button id="creategame" >Create game</button>
<p id="demo">Hello</p>
<script>
$(document).ready(function(){
$('#creategame').click(function(){
$("#demo").append("Test");
});
});
</script>
</body>
</html>
My guess is you don't load jQuery file, and the console has
$ is not defined
error. Simply, add
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
to <head> tag
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="index1.js"></script>
<title>Drinking Game</title>
</head>
You are missing the jQuery file. Add this code <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> to your file above the <script src="index1.js"></script>. Make sure it's above it because if it's not then you can't call the jQuery functions in the your index1.js file.
try using the .html() function:
$("#demo").html("Test");
The following worked for me.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<button id='createGame' class="btn btn-default">Click</button>
<p id="demo">Hello</p>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
$(document).ready(function() {
$("#createGame").click(function(){
$("#demo").append("Test");
});
});
</script>
</body>
</html>
You need to reference jQuery in a <script> tag somewhere.

Simple onload event not firing?

Just made a basic program to fin the root of my problem and I can't seem to find why this is not working at all.
HTML
<html lang="en">
<head>
<script type="text/javascript" src="carjava.js"></script>
</head>
<body onload="hi()">
hi
</body>
</html>
JS
function hi() {
alert("hi");
}
I want an alert to pop up when the page loads but nothing happens, any ideas?
I can't tell you why it isn't firing, but this should work:
HTML
<html lang="en">
<head>
<script type="text/javascript" src="carjava.js"></script>
</head>
<body>
hi
</body>
</html>
JS
function hi() {
alert("hi");
}
window.onload = hi;
following code is working fine for me:
<html lang="en">
<head>
<script type="text/javascript" src="carjava.js"></script>
<script type="text/javascript">
function hi()
{
alert('hi');
}
</script>
</head>
<body onload="hi()">
hi
</body>
</html>
Its working fine in Firefox & Chrome. Must be something with js file.

'Body onload' not working in IE6?

The <body onload="sample()"> is working in all other browsers except in IE6. window.onload also did not work in IE6. The code is as follows,
<!DOCTYPE html>
<html>
<head>
<script type="application/javascript">
function sample()
{
alert("hi");
}
</script>
</head>
<body onload="sample()"> ..... </body>
</html>
Change the <script type="application/javascript"> to <script type="text/javascript">, and it works!
With <!DOCTYPE html>, I believe the script type attribute is optional, if the script is Javascript.

Unable to do event handling using Jquery on API

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script type="text/javascript">
$("#myBtn").on("click",function(){
alert('myBtn Clicked');
});
</script>
</head>
<body>
<button type="button" id="myBtn">Sample</button>
</body>
</html>
For the above mentioned code click event is not firing. I used JSFiddle it works fine.
It works fine in case of delegation. The code I used for delegation is below
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).on("click","button",function(){
alert('myBtn Clicked');
});
</script>
</head>
<body>
<button type="button" id="myBtn">Sample</button>
</body>
Help me in solving this....
Read http://docs.jquery.com/How_jQuery_Works
So for you it would be:
$(document).ready(function(){
$("#myBtn").on("click",function(){
alert('myBtn Clicked');
});
});
Put your code inside document.ready()
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#myBtn").on("click",function(){
alert('myBtn Clicked');
});
});
</script>
</head>
<body>
<button type="button" id="myBtn">Sample</button>
</body>
</html>
Now in second case your code worked because document is loaded first in the page and attaching may be done to it without document.ready but at that time html element may be loading so event can't be attached to them
Try to put it on Initiliaze function. Maybe javascript of jquery is not loaded
$(function () {
$(document).on("click","button',function(){
alert('myBtn Clicked');
});
});
Simples: your DOM isn't loaded yet when you are adding the listeners! Make sure the DOM is loaded first by either
use the ready event
move the script tag to the end of your body
$( document ).ready(function(e) {
// add listeners here
});

Categories