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

Как этот код выдает

Неподготовлено 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>

Ответ 1

Сначала вы должны поместить ссылки на сценарии 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>

Ответ 2

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

Ответ 3

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

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

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

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

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

Ответ 4

Если ваш пользовательский script загружен до того, как плагин 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:

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

Ответ 5

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

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

Ответ 6

Хорошо, моя проблема была другой: она была Document Security в Chrome.

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

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

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

Ответ 7

Добавьте библиотеку перед запуском script. Вы можете добавить любой из следующих ниже 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>

Ответ 8

Если в wordpress может потребоваться изменить

$(document).ready(function() {

к

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

или добавить

var $ = jQuery;

перед

$(document).ready(function() {

Ответ 9

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

Ответ 10

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

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

Ответ 11

Я хотел попробовать сделать мой скрипт асинхронным. Затем я забыл об этом, и когда я начал работу, файл [custom].js загружался только в 50% случаев до jQuery.js.

Итак, я изменился

<script async src="js/script.js"></script>

в

<script src="js/script.js"></script>

Ответ 12

Если вы делаете это в .Net и имеете правильный файл script, и вы, jQuery, выглядите отлично, убедитесь, что ваши пользователи имеют доступ к файлу script. Проект, над которым я работал (коллега), имел свой web.config, запрещающий доступ к анонимным пользователям. Страница, над которой я работал, была доступна анонимным пользователям, поэтому они не имели доступа к файлу script. Выбросили в web.config следующее: все было в мире:

  <location path="Scripts">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

Ответ 13

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

До src="/scripts/jquery.js"

После   src="scripts/jquery.js"

Ответ 14

Исходный файл jquery-1.2.6.min.js не называется командой jQuery $() выполняется раньше <..src='jquery-1.2.6.min.js'>.

Сначала запустите <.. src="/js/jquery-1.2.6.min.js.."> и убедитесь, что путь src прав, затем выполните команду jquery

$(document).ready(function() 

Ответ 15

Это случилось со мной раньше.

Причина в том, что я подключаю android к веб-просмотру с помощью JS. И я отправил параметр без кавычек.

js.sayHello(hello);

и когда я изменил его на

js.sayHello('hello');

он работал.

Ответ 16

У меня была та же проблема, и я решил, поместив jQuery на вершину всех кодов JavaScript, которые есть в моем коде.

Что-то вроде этого:

<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="js/app.js" type="text/javascript"></script>
<script src="js/form.js" type="text/javascript"></script>
<script src="js/create.js" type="text/javascript"></script>
<script src="js/tween.js" type="text/javascript"></script>

Надежда может помочь кому-то в будущем.

Ответ 17

Ваш файл JavaScript отсутствует, поэтому произошла ошибка. Просто добавьте файл JavaScript внутри тега <head>. См. Пример:

<script src="js/sample.js" type="text/javascript"></script>
<link href="css/sample.css" rel="stylesheet" type="text/css" />

или добавьте следующий код в тег:

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

Ответ 18

Ошибка будет происходить и в следующих двух сценариях.

  • Элемент сценария @section отсутствует в файле HTML
  • Ошибка при доступе к элементам DOM. Например, доступ к элементу DOM упоминается как $( "js-toggle" ) вместо $( ". Js-toggle" ). Фактически этот период отсутствует

Итак, 3 вещи, которые необходимо соблюдать, - добавьте необходимые скрипты, проверьте, добавлены ли они в требуемом порядке и третья синтаксическая ошибка в вашей Java Script.

Ответ 19

Doh! У меня были смешанные кавычки в моих тегах, которые приводили к разрыву ссылки на jquery. Выполнение проверки в Chrome позволило мне увидеть, что файл не был правильно связан.

Ответ 20

В моем случае я забыл включить это:

 <script src ="jquery-2.1.1.js"></script>

Раньше я включал только jquery-mobile, который вызывал эту ошибку.

Ответ 21

Я изменил тег script, чтобы он указывал на правильный контент, и изменил порядок сценариев, чтобы он был правильным в редакторе. Но совершенно забыл сохранить изменения.

Ответ 22

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

Если вы находитесь в ASP.NET MVC, вы можете указать, когда должен отображаться код JS, выполнив следующее:

1. В вашем page.cshtml оберните <script> в раздел и page.cshtml ему имя, обычно используемое имя - "scripts":

@section scripts {
    <script>
        // JS code...
    </script>
}

2. На своей странице _Layout.cshtml добавьте @RenderSection("Scripts", required: false), убедитесь, что поставили его после ссылки на источник Jquery, это сделает ваш код JS визуализированным позже, чем Jquery.

Ответ 23

У меня была аналогичная проблема, и это было из-за того, что мне не хватало закрытия > на ссылке в стиле.

Ответ 24

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="local_xxx.js"></script>

У меня есть аналогичная проблема, и вы знаете, что из-за того, что сеть отключена, когда я тестирую веб-представление устройства Android, и я этого не понимаю, а локальные js не представляют проблемы, потому что ему не нужна сеть. Это кажется смешным, но он тратит около 1 часа, чтобы понять это.

Ответ 25

Странно, моя проблема исходила из PHP.

Ошибка API REST API была неудачной, и впоследствии она прерывала загрузку библиотек. Поскольку сбой произошел от вызова REST, он не дал мне ошибку компиляции php.

Удерживайте это как параметр, если загрузка jquery выглядит нормально.

Ответ 26

У меня была эта проблема, когда я просматривал интернет через свою мобильную точку доступа. он также сжимал изображения и добавил следующий script в нижней части тега body

<script language="javascript"><!--
bmi_SafeAddOnload(bmi_load,"bmi_orig_img");//-->
</script>

Когда я подключился к соответствующему Wi-Fi-соединению, все, похоже, найдет для меня работу. Надеюсь, что это поможет кому-то.

Ответ 27

У меня была аналогичная проблема. Мой тестовый сервер отлично работал с "http". Однако это не удалось в производстве с SSL.

Таким образом, в производстве я добавил "HTPPS" вместо "HTTP" и в тесте, я сохранил его как "HTTP".

Тест:

wp_register_script ('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', array(), null, false);

wp_register_script ('custom- script', plugins_url ('/js/custom.js', FILE), массив ('jquery'));

Производство:

wp_register_script ('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', array(), null, false);

wp_register_script ('custom- script', plugins_url ('/js/custom.js', FILE), массив ('jquery'));

Надеюсь, это поможет кому-то, кто работает над wordpress.

Ответ 28

Это также может произойти, если есть проблема с сетью. Это означает, что даже несмотря на то, что "сценарии jquery" находятся на месте и включены до использования, поскольку jquery-скрипты недоступны, во время загрузки страницы, следовательно, определения в "$" рассматриваются как "undefined ссылки".

ДЛЯ ИСПЫТАНИЙ ТЕСТ/ДЕБЮГОВ::. Вы можете попытаться получить доступ к URL-адресу "jquery- script" в браузере. Если она доступна, ваша страница должна загружаться должным образом, иначе она покажет указанную ошибку (или другие ошибки script). Пример - http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js должен быть доступен в браузере (или в контексте браузера).

У меня была аналогичная проблема, в которой я смог загрузить html-страницу (используя скрипты) в моем браузере Windows-хоста, но не смог загрузить в vm-ubuntu. Решение проблемы с сетью устраняет проблему.

Ответ 29

var $ = jQuery;
jQuery(document).ready(function($){

Ответ 30

Корневая проблема - ошибка ReferenceError. MDN указывает, что блок try/catch является подходящим инструментом для работы. В моем случае я получил неперехваченную ссылочную ошибку для оплаты SDK/библиотеки. Ниже работает для меня.

try {
  var stripe = Stripe('pk_test_---------');
} catch (e) {
    stripe = null;
}

if(stripe){
  //we are good to go now
}

Очевидно, что исправление состоит в том, чтобы загрузить любую SDK/библиотеку, например, jQuery, перед вызовом ее методов, но try/catch не дает вашему общему JavaScript избавиться от ошибок в случае, если вы запускаете этот общий скрипт на странице, которая не загружает какую-либо библиотеку вы используете на подмножестве страниц.