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

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

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>

43 ответа

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

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

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

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

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

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></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 src="js/custom.js" type="text/javascript"></script>

В моем случае я ставил свой .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>

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

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

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

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

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

Добавьте библиотеку jQuery перед сценарием, который использует $ или jQuery, чтобы $ можно было идентифицировать в сценариях. удалить сценарий тега на голове и положить конец бади

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

затем сначала напишите скрипт в файл js add

      /*global $ */
$(document).ready(function(){  });

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

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

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

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

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

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

Если это в WordPress, может быть необходимо изменить

$(document).ready(function() {

в

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

или добавить

var $ = jQuery;

до

$(document).ready(function() {

В моем случае у меня был этот 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>

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

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

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

в

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

:)

У меня была та же проблема, и я решил, поместив 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>

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

поместите последний jquery cdn поверх вашей основной html-страницы

Нравится Если ваша основная html-страница - index.html

поместите jquery cdn поверх этой страницы, как это

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $("h2").hide();
  });
});
</script>
</head>
<body>

<h2>This will hide me</h2>


<button>Click me</button>

</body>
</html>

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

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

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

Сначала включите jquery CDN (или jquery ref) в индексный файл. перед включением вашего js-файла, чтобы убедиться, что мы получаем доступ к jquery. следующие строки работали для меня

Чтобы получить четкое представление об этом, обратитесь к следующему справочному сайту:https://www.tutorialrepublic.com/faq/how-to-fix-dollar-is-not-defined-error-in-jquery.php

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

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

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

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

js.sayHello(hello);

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

js.sayHello('hello');

это сработало.

Исходный файл 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() 

У меня была похожая проблема. Мой тестовый сервер работал нормально с "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.

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

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

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

Хорошо, я признаю, что это была действительно глупая вещь, которая однажды случилась со мной. Я изменил тег script, чтобы он указывал на правильный контент, и изменил порядок сценариев, чтобы он был правильным в редакторе... но совершенно забыл сохранить изменения;(Вы можете смеяться сейчас, но когда вы устали, все странно Могут возникнуть проблемы. Я

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

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

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

Ваш файл 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>

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

Вы не ссылались на библиотеку jQuery.

Вам нужно будет включить строку, похожую на эту в вашем HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<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 час, чтобы понять это.

Если вы laraveling, эта ошибка возникает в файлах лезвия, когда вы забыли окружить код:

@section('section name')

.......

@endsection

У меня была похожая проблема, и это потому, что мне не хватало закрывающей> ссылки на таблицу стилей.

Другие вопросы по тегам