Uncaught ReferenceError: $ is not defined?

2,471,801

Solution 1

You should put the references to the jquery scripts first.

<script language="JavaScript" type="text/javascript" src="/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/jquery-ui-personalized-1.5.2.packed.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/sprinkle.js"></script>

Solution 2

You are calling the ready function before the jQuery JavaScript is included. Reference jQuery first.

Solution 3

This is what solved it for me. Originally I went to Google and copied and pasted their suggested snippet for jQuery on their CDN page:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

The snippet does not include the HTTP: or HTTPS: in the src attribute but my browser, FireFox, needed it so I changed it to: edit: this worked for me with Google Chrome as well

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

Then it worked.

Solution 4

If your custom script is loaded before the jQuery plugin is loaded to the browser then this type of problem may occur. So, always keep your own JavaScript or jQuery code after calling the jQuery plugin so the solution for this is :

First add the link to the jQuery file hosted at GoogleApis or a local jQuery file that you will download from http://jquery.com/download/ and host on your server:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

or any plugin for jQuery. Then put your custom script file link or code:

<script src="js/custom.js" type="text/javascript"></script>

Solution 5

Okay, my problem was different - it was Document Security model in Chrome.

Looking at the answers here, it was obvious that I was somehow not loading my jquery files before calling the $(document).ready() etc. functions. However, they were all in the correct positions.

In my case, this was because I was accessing the content over a secure HTTPS connection, whereas the page was trying to download the CDN hosted data from google, etc. The solution was to store them locally and then include then directly rather than from the CDN each time.

Edit: The other way of doing this is to link to all the CDN-hosted stuff as https:// rather than http:// - then the model doesn't complain.

Share:
2,471,801
Olivers
Author by

Olivers

Updated on November 01, 2021

Comments

  • Olivers
    Olivers over 2 years

    How come this code throws an

    Uncaught ReferenceError: $ is not defined

    when it was OK before?

    $(document).ready(function() {
        $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } });
        $('#featuredvid > ul').tabs();
    });
    

    Results in tabs don't close anymore.

    jQuery is referenced in the header:

    <script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/sprinkle.js"></script>
    <script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"></script>
    <script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-ui-personalized-1.5.2.packed.js"></script>
    
  • Quentin
    Quentin about 3 years
    Danger: The version of jQuery used here has known security issues and is unsupported. Get the latest version from the jQuery website.