137

I have implemented some JavaScript on my site but I keep getting the following error messages:

Uncaught ReferenceError: jQuery is not defined

and

Uncaught SyntaxError: Unexpected token <

This is the JavaScript that I am using in the header.php:

    <script type="text/javascript" src="/test/wp-content/themes/child/script/jquery.jcarousel.min.js"></script>
    <script type="text/javascript" src="/test/wp-content/themes/child/script/jquery.scrollTo.js"></script>
    <script type="text/javascript" src="/test/wp-content/themes/child/script/jquery.backgroundPosition.js"></script>
    <script type="text/javascript" src="/test/wp-content/themes/child/script/scripts.js"></script>
    <script type="text/javascript" src="/test/wp-content/themes/child/script/jquery.cycle.lite.js"></script>
    <script type="text/javascript" src="/test/wp-content/themes/child/script/jquery.accordian.js"></script>

    <script type="text/javascript">
        jQuery(document).ready(function () {
            jQuery('#contentGallery').cycle({
                fx: 'fade' // choose your transition type, ex: fade, scrollUp, shuffle, etc...
            });
        });
    </script>
</head>

<body <?php body_class(); ?>>
<div id="page" class="hfeed">
    <header id="branding" role="banner">
            <hgroup>
                <h1 id="site-title"><span><a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></span></h1>
                <h2 id="site-description"><?php bloginfo( 'description' ); ?></h2>
            </hgroup>

            <?php
                // Check to see if the header image has been removed
                $header_image = get_header_image();
                if ( ! empty( $header_image ) ) :
            ?>
            <a href="<?php echo esc_url( home_url( '/' ) ); ?>">
                <?php
                    // The header image
                    // Check if this is a post or page, if it has a thumbnail, and if it's a big one
                    if ( is_singular() &&
                            has_post_thumbnail( $post->ID ) &&
                            ( /* $src, $width, $height */ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), array( HEADER_IMAGE_WIDTH, HEADER_IMAGE_WIDTH ) ) ) &&
                            $image[1] >= HEADER_IMAGE_WIDTH ) :
                        // Houston, we have a new header image!
                        echo get_the_post_thumbnail( $post->ID, 'post-thumbnail' );
                    else : ?>
                    <img src="<?php header_image(); ?>" width="<?php echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>" alt="" />
                <?php endif; // end check for featured image or standard header ?>
            </a>
            <?php endif; // end check for removed header image ?>

            <nav id="access" role="navigation">

<div id="nav">
            <ul>
                <li class="end"><a href="#contact" id="navContact" class="goto_contact"></a></li>
                <li><a href="#context" id="navContext" class="goto_context"></a></li>
                <li><a href="#artScience" id="navArtScience" class="goto_artScience"></a></li>
                <li><a href="#home" id="navHome" class="goto_home"></a></li>
            </ul>
            <div class="clear">
            </div>
        </div>
        <div id="navPointer">
            <div id="controlContainer">
                <div id="pointer">
                </div>
            </div>
        </div>
    </div>
    <div id="contentHolder">
        <div id="contentGallery">
            <img src="Images/Gallery/london.jpg" width="1200" height="550" alt="London" />
            <img src="Images/Gallery/singapore.jpg" style="display: none;" width="1200" height="550"
                alt="Singapore" />
            <img src="Images/Gallery/geneva.jpg" style="display: none;" width="1200" height="550"
                alt="Geneva" />
        </div>
        <div id="contentShadow">
        </div>
        <div id="content">
            <div id="contentScroller">
                <div id="home" class="page">
                    <div class="homeContent">
                        <span class="homeHeaderText">GMR</span>
                        <div class="clear">
                        </div>
                        <div class="homePageText">
                            <p> very long text 1
                            </p>
                        </div>
                    </div>
                </div>
                <div id="artScience" class="page">
                    <div class="pageContent">
                        <div id="artSciencePage">
                            <span class="headerText">About Us</span>
                            <div class="pageText">
                                <p>
                                    Insert text here. 
                                </p>
                            </div>
                            <table border="0" cellpadding="0" cellspacing="0" class="linkTable">
                                <tr>
                                    <td valign="middle" height="100%">
                                        <a href="#" id="theArtLnk" class="largeArrow">The Art</a>
                                    </td>
                                    <td valign="middle" height="100%">
                                        <a href="#" id="theScienceLnk" class="largeArrow">The Science</a>
                                    </td>
                                </tr>
                            </table>
                        </div>
                        <div id="theArtPage" class="closed">
                            <span class="headerText">The Art</span>
                            <div class="pageText">
                                <a href="#" class="acc_trigger">Sensitivity</a>
                                <div class="acc_container">
                                    <p>very long text 2</p>
                                </div>
                                <div class="seperator">
                                </div>
                                <a href="#" class="acc_trigger">Creativity</a>
                                <div class="acc_container">
                                    <p>very long text 3</p>
                                </div>
                                <div class="seperator">
                                </div>
                                <a href="#" class="acc_trigger">Intuition</a>
                                <div class="acc_container">
                                    <p>very long text 4</p>
                                </div>
                                <div class="seperator">
                                </div>
                                <a href="#" class="acc_trigger">Judgment</a>
                                <div class="acc_container">
                                    <p>very long text 5</p>
                                </div>
                            </div>
                            <a href="#" id="artToScienceLnk" class="largeArrow">The Science</a>
                        </div>
                        <div id="theSciencePage" class="closed">
                            <span class="headerText">The Science</span>
                            <div class="pageText">
                                <a href="#" class="acc_trigger_2">Methodology</a>
                                <div class="acc_container_2">
                                    <p>very long text 6</p>
                                </div>
                                <div class="seperator">
                                </div>
                                <a href="#" class="acc_trigger_2">Research</a>
                                <div class="acc_container_2">
                                    <p>very long text 7</p>
                                </div>
                                <div class="seperator">
                                </div>
                                <a href="#" class="acc_trigger_2">Team Approach</a>
                                <div class="acc_container_2">
                                    <p>very long text 8</p>
                                </div>
                                <div class="seperator">
                                </div>
                                <a href="#" class="acc_trigger_2">Sharing Information</a>
                                <div class="acc_container_2">
                                    <p>very long text 9</p>
                                </div>
                            </div>
                            <a href="#" id="scienceToArtLnk" class="largeArrow">The Art</a>
                        </div>
                    </div>
                </div>
                <div id="context" class="page">
                    <div class="pageContent">
                        <span class="headerText">Expertise</span>
                        <div class="pageText">
                            <a class="acc_trigger_3" href="#">Expertise</a>
                            <div class="acc_container">
                                <p>very long text 10</p>
                            </div>
                            <div class="seperator">
                            </div>
                            <a class="acc_trigger_3" href="#">Business Context</a>
                            <div class="acc_container">
                                <p>very long text 11</p>
                            </div>
                            <div class="seperator">
                            </div>
                            <a class="acc_trigger_3" href="#">Cultural Context</a>
                            <div class="acc_container">
                                <p>very long text 12</p>
                            </div>
                            <div class="seperator">
                            </div>
                            <a class="acc_trigger_3" href="#">Candidate Context</a>
                            <div class="acc_container">
                                <p>very long text 13</p>
                            </div>
                            <div class="seperator">
                            </div>
                            <a class="acc_trigger_3" href="#">Financial Context</a>
                            <div class="acc_container">
                                <p>very long text 14</p>
                            </div>
                            <div class="seperator">
                            </div>
                            <a class="acc_trigger_3" href="#">Service Context </a>
                            <div class="acc_container">
                                <p>very long text 15</p>
                            </div>
                        </div>
                    </div>
                </div>
                <div id="contact" class="page">
                    <div class="pageContent">
                        <span class="headerText">Contact</span>
                        <div class="pageText">
                            <h2>
                                Tel: +44(0)1234 567 890</h2>
                            <h3>
                                Email: <a href="mailto:info@info">info@info</a></h3>
                        </div>
                    </div>
                </div>
            </div>
        </div>

                <h3 class="assistive-text"><?php _e( 'Main menu', 'twentyeleven' ); ?></h3>
                <?php /*  Allow screen readers / text browsers to skip the navigation menu and get right to the good stuff. */ ?>
                <div class="skip-link"><a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to primary content', 'twentyeleven' ); ?>"><?php _e( 'Skip to primary content', 'twentyeleven' ); ?></a></div>
                <div class="skip-link"><a class="assistive-text" href="#secondary" title="<?php esc_attr_e( 'Skip to secondary content', 'twentyeleven' ); ?>"><?php _e( 'Skip to secondary content', 'twentyeleven' ); ?></a></div>
                <?php /* Our navigation menu.  If one isn't filled out, wp_nav_menu falls back to wp_page_menu. The menu assiged to the primary position is the one used. If none is assigned, the menu with the lowest ID is used. */ ?>

            </nav><!-- #access -->
    </header><!-- #branding -->

This is the code I am using in the footer.php:

<div id="footerNav">
    <ul>
        <li class="start"><a href="#home" class="goto_home">Home</a></li>
        <li><a href="#artScience" class="goto_artScience">About Us</a></li>
        <li><a href="#context" class="goto_context">Approach</a></li>
        <li><a href="#contact" class="goto_contact">Expertise</a></li>
    </ul>
</div>
ROMANIA_engineer
  • 54,432
  • 29
  • 203
  • 199
user1096057
  • 2,383
  • 4
  • 19
  • 20

5 Answers5

207

jQuery needs to be the first script you import. The first script on your page

<script type="text/javascript" src="/test/wp-content/themes/child/script/jquery.jcarousel.min.js"></script>

appears to be a jQuery plugin, which is likely generating an error since jQuery hasn't been loaded on the page yet.

Adam Rackis
  • 82,527
  • 56
  • 270
  • 393
  • 2
    That was way useful! I was including it after the whole page loads up... – Genesis Mar 06 '13 at 20:48
  • 9
    What is jQuery is the **first** script on the page and there is an error anyway? – Green Jul 29 '13 at 03:33
  • Solved my problems in rails as well. I first included bootstrap before jquery. But then the solution was including Jquery first and then bootstrap. – The Third Jun 07 '14 at 00:05
  • 2
    I have also encountered this problem when the certificate for the site expires. Today I got it and all of my sites started failing on refresh because of it. On your console you'll only see: `ReferenceError: jQuery is not defined` The problem is you won't find the cause until you look at the URL and see this: `code.jquery.com uses an invalid security certificate. The certificate expired on 07/31/2014 11:49 AM. The current time is 07/31/2014 12:40 PM. (Error code: sec_error_expired_certificate)` – aespinoza Jul 31 '14 at 19:47
  • @Adam Rackis can u plz check the link http://stackoverflow.com/questions/27978847/uncaught-typeerror-undefined-is-not-a-function. – Zaker Jan 16 '15 at 07:27
  • 1
    @aespinoza solution helped. One clarification, you won't see the error until you look at the homepage (root of site). – zeusstl May 01 '16 at 19:18
  • Gets me every time... – CodeBreaker Oct 03 '16 at 18:16
16

you need to put it after wp_head(); Because that loads your jQuery and you need to load jQuery first and then your js

Jorge Balleza
  • 897
  • 7
  • 10
8

In my case, the error occurred because I was using the wrong version of jquery.

<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

I changed it to:

<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
HelloWorldNoMore
  • 307
  • 3
  • 14
5

set this jquery min js

script src="http://code.jquery.com/jquery-1.10.1.min.js"

in wp-admin/admin-header.php

Carl0s1z
  • 4,683
  • 7
  • 32
  • 47
Kapil Parihar
  • 61
  • 1
  • 6
  • I think that answer fits. but i'm not sure if asker uses wordpress. but it solves the problem by adding jq to the header. – coding Bott Sep 26 '13 at 20:39
  • @ Bernd Ott i have also occur same problem in wordpress and i have solve this by adding min js thats why i comment on this post . – Kapil Parihar Sep 26 '13 at 22:12
  • It's bad idea to change anything in Wordpress outside your theme. Actually you don't need to include jQuery for admin panel because it is already included :) – Dzmitry Kulahin Jul 12 '19 at 15:14
3

For one, you don't seem to be including jQuery itself in the header but only a bunch of plugins. As for the '<' error, it's impossible to tell without seeing the generated HTML.

Flo
  • 1,965
  • 11
  • 18