Uncaught ReferenceError: $ не определено? - PullRequest
579 голосов
/ 16 января 2010

Как получается, что этот код выдает

Uncaught ReferenceError: $ не определено

когда все было хорошо раньше?

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

Результаты во вкладках больше не закрываются.

jQuery упоминается в заголовке:

<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>

Ответы [ 37 ]

635 голосов
/ 16 января 2010

Сначала вы должны поместить ссылки на скрипты jquery.

<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>
201 голосов
/ 16 января 2010

Вы вызываете функцию ready до включения jQuery JavaScript. Сначала ссылка jQuery.

103 голосов
/ 17 марта 2013

Это то, что решило это для меня. Первоначально я пошел в Google, скопировал и вставил предложенный фрагмент кода для jQuery на их странице CDN:

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

Фрагмент не включает HTTP: или HTTPS: в атрибуте src, но мой браузер FireFox нуждался в нем, поэтому я изменил его на: редактировать: это работало и у меня с Google Chrome

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

Тогда это сработало.

42 голосов
/ 24 января 2014

Если ваш пользовательский скрипт загружается до того, как плагин jQuery загружается в браузер, тогда может возникнуть такая проблема. Поэтому всегда сохраняйте свой собственный код JavaScript или jQuery после вызова плагина jQuery, поэтому решение для этого:

Сначала добавьте ссылку на файл jQuery, размещенный на GoogleApis, или локальный файл jQuery, который вы скачаете с http://jquery.com/download/ и разместите на своем сервере:

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

или любой плагин для jQuery. Затем поместите ссылку на свой файл сценария или код:

<script src="js/custom.js" type="text/javascript"></script>
37 голосов
/ 15 декабря 2014

В моем случае я помещал свой файл .js перед ссылкой на скрипт jQuery, а файл .js после ссылки на скрипт jQuery решил мою проблему.

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="exponential.js"></script>
25 голосов
/ 19 февраля 2013

Хорошо, моя проблема была другой - это была Защита документов модель в Chrome .

Глядя на ответы здесь, было очевидно, что я как-то не загружал свои файлы jquery перед вызовом функций $(document).ready() и т. Д. Однако все они были в правильных позициях.

В моем случае это было потому, что я получал доступ к контенту через защищенное соединение HTTPS, в то время как страница пыталась загрузить данные, размещенные на CDN, из Google и т. Д. Решением было сохранить их локально, а затем напрямую подключить чем из CDN каждый раз.

Редактировать : Другой способ сделать это - связать все размещенные на CDN вещи как https: //, а не http: // - тогда модель не будет жаловаться.

23 голосов
/ 04 мая 2017

Добавьте библиотеку перед запуском скрипта. Вы можете добавить любой из следующих CDN , чтобы запустить ее.

Google:

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

Microsoft

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>

Jquery

Если вы хотите использовать любую другую версию Jquery cdn, проверьте ссылку .

После этого:

<script type="text/javascript">
$(function(){
    //your stuff
});
or
$(document).ready(function(){
    //your stuff
});    
</script>

Wordpress:

<script type="text/javascript">
var $ = jQuery;
jQuery(document).ready(function($){
     //your stuff
});
</script>
19 голосов
/ 09 июля 2015

Если он в WordPress, возможно, потребуется изменить

$(document).ready(function() {

до

jQuery(document).ready(function($){

или добавить

var $ = jQuery;

до

$(document).ready(function() {
15 голосов
/ 19 января 2011

У меня была точно такая же проблема, и ни одно из этих решений не помогло. однако я просто связал файлы .css после файлов .js, и проблема чудесным образом исчезла. Надеюсь, это поможет.

13 голосов
/ 01 февраля 2014

В моем случае я имел эту referenceError, поскольку порядок вызовов скриптов был неправильным.Решил это, изменив порядок:

<script src="js/index.js"></script>
<script src="js/jquery-1.10.2.js"></script>

на

<script src="js/jquery-1.10.2.js"></script>
<script src="js/index.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...