Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I reference jQuery from my HTML/JavaScript application?

I keep getting Uncaught ReferenceError: $ is not defined error. I assume everything is ok and working. My JQuery code is inside my Javascript file. I assume that isn't how it works? Should I have a JQuery file?

I have this inside the head of my HTML <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>

This is my Javascript file:

function typing(id, sentence){
var result = $.Deferred();
    var index=0;
    var intObject= setInterval(function() {
        document.getElementById(id).innerHTML+=sentence[index]; 
        index++;
        if(index==sentence.length){
            clearInterval(intObject);
        }
    }, 100);
    return result.promise();
}

var sleep = function(ms) {
    var result = $.Deferred();
    setTimeout(result.resolve, ms);
    return result.promise();
};

typing('container','Subject Name:').then(function() {
      return sleep(500);
    }).then(function() {
      return typing('container',' Hi')
    });

Where did I go wrong?


1 Answers

Your question is fairly unclear, but essentially, you just have to make sure jQuery is loaded before your code. So for instance:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="your-code.js"></script>

or

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script>
// Your code
</script>

But not

<!-- Not like this -->
<script src="your-code.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>

Note the order of tags.

These tags do not need to be in the head, and in fact, putting them there is not best practice. They must be in head or body. Best practice barring a specific reason to do something else is to put them at the very end of body, e.g.:

<!-- site content here -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="your-code.js"></script>
</body>
</html>
like image 108
T.J. Crowder Avatar answered Apr 02 '26 02:04

T.J. Crowder



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!