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.
Ошибка будет возникать и в следующих двух сценариях.
- Элемент @section scripts отсутствует в файле HTML
- Ошибка доступа к элементам 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
У меня была похожая проблема, и это потому, что мне не хватало закрывающей> ссылки на таблицу стилей.