У меня есть простое событие jquery click
<script type="text/javascript">
$(function() {
$('#post').click(function() {
alert("test");
});
});
</script>
и ссылка на jquery, определенная на сайте.
<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>
Я проверил, что сценарий разрешается правильно, я могу видеть разметку и просматривать сценарий непосредственно в firebug, так что я должен быть найден. Тем не менее, я все еще получаю:
$ не определено
и ни один из jquery не работает. Я также пробовал различные варианты этого, такие как $ (document) .ready, jQuery и т. Д.
Это приложение MVC 2 для .net 3.5, я уверен, что я очень плотный, везде на google говорят, чтобы проверить правильность ссылки на файл, который я проверил и проверил снова, пожалуйста, сообщите! : /
javascript
jquery
asp.net-mvc
Пол Криси
источник
источник
Ответы:
Эта ошибка может быть вызвана только одной из трех причин:
Прежде всего, убедитесь, что скрипт вызывается правильно, он должен выглядеть
и не должно иметь атрибутов async или defer .
Затем следует проверить Firebug чистую панель , чтобы увидеть , если файл на самом деле загружается должным образом. Если нет, он будет выделен красным цветом и рядом с ним будет написано «404». Если файл загружается правильно, это означает, что проблема номер 2.
Убедитесь, что весь код jQuery javascript выполняется внутри блока кода, такого как:
Это обеспечит загрузку вашего кода после инициализации jQuery.
Последнее, что нужно проверить, это убедиться, что вы не загружаете никаких плагинов перед загрузкой jQuery. Плагины расширяют объект "$", поэтому, если вы загрузите плагин перед загрузкой ядра jQuery, вы получите ошибку, которую вы описали.
Примечание. Если вы загружаете код, для запуска которого не требуется jQuery, его не нужно помещать в обработчик готовности jQuery. Этот код может быть отделен с помощью
document.readyState
.источник
$(document)
он также не будет работать, если у вас нет тега script, включающего jQuery, перед этим утверждением ...Возможно, ваш тег script вызывается до вызова сценария jquery.
Этот результат как $ не определен
Поместите jquery.js перед тегом скрипта, и он будет работать;) примерно так:
источник
@section Scripts
тегаДля начала вам нужно убедиться, что скрипт jQuery загружен. Это может быть из CDN или локально на вашем сайте. Если вы сначала не загрузите его, прежде чем пытаться использовать jQuery, он скажет вам, что jQuery не определен.
Это может быть в верхнем или нижнем колонтитуле страницы, просто убедитесь, что вы загружаете его, прежде чем пытаться вызвать любой другой материал jQuery.
Тогда вам нужно использовать одно из двух решений ниже
или
имейте в виду, что много раз $ (document) .ready (function () {// code here}); не будет работать.
источник
Если вызов плагина jQuery находится рядом с
</body>
, и ваш скрипт загружается до этого, вы должны заставить свой код запускаться послеwindow.onload
события, например так:`
Итак, ваш код будет работать только после загрузки окна, когда все ресурсы будут загружены. В этой точке
$
будет определен jQuery ( ).Если вы используете это:
`
В настоящее время
$
он еще не определен, потому что он вызывается до загрузки jQuery, и ваш скрипт потерпит неудачу в первой строке консоли.источник
Я просто сделал то же самое и обнаружил, что у меня было много
Таким образом, они загружались, но больше никаких намеков на то, почему это не работает. Само собой разумеется, правильное правописание исправило это.
источник
Используйте раздел скриптов в представлении и макете мастера.
Поместите все ваши сценарии, определенные в вашем представлении, в раздел вида Scripts. Таким образом, вы можете загрузить основной макет после загрузки всех других скриптов. Это настройка по умолчанию при запуске нового веб-проекта MVC5. Не уверен насчет более ранних версий.
Просмотров / Foo / MyView.cshtml:
Views / Shared / _Layout.cshtml
Обратите внимание, как секция скриптов отображается последней в главном файле макета.
источник
убедитесь, что вы действительно загружаете jquery, это не jquery - это пользовательский интерфейс!
Это правильный источник скрипта для jquery:
источник
Как указано выше, это происходит из-за конфликта переменной $.
Я решил эту проблему, сохранив вторичную переменную для jQuery без конфликта.
а затем использовать его где угодно
более подробную информацию можно найти здесь
источник
Это означает, что ваша библиотека jQuery еще не загружена.
Вы можете переместить свой код после использования библиотеки jQuery.
или вы можете использовать что-то вроде этого
источник
Вы используете другие библиотеки JavaScript? Если это так, вам, вероятно, потребуется использовать jQuery в режиме совместимости:
http://docs.jquery.com/Using_jQuery_with_Other_Libraries
источник
после нескольких тестов я нашел быстрое решение, вы можете добавить в верхней части страницы индекса:
это работает очень хорошо :)
источник
Я получил то же сообщение об ошибке, когда неправильно написал ссылку на jQuery, и вместо этого
type="text/javascript"
набрал «... javascirpt». ;)источник
type="text/css"
. Спасибо за сохранение моего здравомыслия!type="javascript"
. Потратил 30 минут на поиски.Похоже, JQuery не загружается должным образом. Какой источник / версию вы используете?
Кроме того, это может быть коллизия пространства имен, поэтому попробуйте явно использовать jQuery вместо использования
$
. Если это работает, вы можете использоватьnoConflict
его, чтобы другой код, который используется$
, не сломался.источник
Эта ошибка означает, что jQuery еще не загружен на странице. Использование
$(document).ready(...)
или любой его вариант не принесет пользы, как$
и функция jQuery.Использование
window.onload
должно работать здесь. Обратите внимание, что только одна функция может быть назначенаwindow.onload
. Чтобы не потерять оригинальную логику загрузки, вы можете украсить оригинальную функцию следующим образом:Это выполнит функцию, которая была первоначально назначена
window.onload
, и затем выполнится// YOUR JQUERY
.См. Https://en.wikipedia.org/wiki/Decorator_pattern для более подробной информации о шаблоне декоратора.
источник
Я использую Url.Content и никогда не имею проблем.
источник
В решении упоминается: «Последнее, что нужно проверить, это убедиться, что вы не загружаете какие-либо плагины перед загрузкой jQuery. Плагины расширяют объект« $ », поэтому, если вы загружаете плагин перед загрузкой ядра jQuery, то вы вы получите ошибку, которую вы описали. "
Чтобы избежать этого -
Многие библиотеки JavaScript используют $ как имя функции или переменной, как это делает jQuery. В случае jQuery $ - это псевдоним для jQuery, поэтому все функции доступны без использования $. Если нам нужно использовать другую библиотеку JavaScript вместе с jQuery, мы можем вернуть управление $ back другой библиотеке с помощью вызова $ .noConflict ():
источник
У меня была эта проблема однажды без видимой причины. Это происходило локально, пока я работал через сервер разработки aspnet. Это сработало, и я вернул все в состояние, в котором он ранее работал, и все же он не работал. Я заглянул в отладчик chrome и jquery-1.7.1.min.js загрузился без проблем. Это было все очень запутанно. Я до сих пор не знаю, в чем проблема, но закрываю браузер, закрываю сервер разработки, а затем снова пытаюсь разобраться с этим.
источник
Просто поместите URL JQuery в верхней части вашего кода JQuery
нравится--
источник
У меня была та же самая проблема, и это было, потому что моя ссылка на jQuery.js не была в теге. Как только я это переключил, все начало работать.
Энтони
источник
Проверьте точный путь вашего файла JQuery включен.
<script src="assets/plugins/jquery/jquery.min.js"></script>
если вы добавите это внизу вашей страницы, пожалуйста, все вызовите функцию JS ниже этой декларации.
Проверьте с помощью этого теста кода,
Мир!
источник
У нас та же проблема .... но я случайно проверил свойства папки и что-то установил ...
Вы должны проверить свойства каждой папки, к которой вы обращаетесь.
Я надеюсь, что это решение ......
источник
При использовании jQuery в asp.net, если вы используете главную страницу и загружаете туда исходный файл jquery, убедитесь, что у вас есть заголовок contentplaceholder после всех ссылок на скрипт jquery.
У меня была проблема, когда любые страницы, которые использовали эту мастер-страницу, возвращали бы '$ is notfined' просто потому, что из-за неправильного порядка выполнялся код на стороне клиента до создания объекта jquery. Поэтому убедитесь, что у вас есть:
Таким образом, код будет работать по порядку, и вы сможете запускать код jQuery на дочерних страницах.
источник
В моем случае я указывал на Google JQuery. Он был включен правильно, но я был на странице HTTPS и звонил по HTTP. Как только я исправил проблему (или допустил небезопасный контент), он сразу же запустился.
источник
У меня была такая же проблема, и я не мог понять, что ее вызвало. Я недавно преобразовал свои HTML-файлы с японского в UTF-8, но я ничего не делал с файлами сценариев. Каким-то образом jquery-1.10.2.min.js повредился в этом процессе (я до сих пор не знаю, как). Замена jquery-1.10.2.min.js оригиналом исправила его.
источник
Похоже, что если вы разместите ваши файлы jquery.js в той же папке или в некоторых подпапках, где находится ваш html-файл, проблема Firebug будет решена. Например, если ваш html-файл находится в C: / folder1 /, то ваши js-файлы должны быть где-то в C: / folder1 / (или C: / folder1 / folder2 и т. д.), а также соответствующим образом указаны в html doc. надеюсь это поможет.
источник
У меня та же проблема, и ни в коем случае я не могу ее решить. Единственное, что работает для меня, это положить в файл Site.master, следующее:
При src = "<% = ResolveUrl (" ") ... загрузка jQuery на страницах контента правильная.
источник
У меня была очень похожая проблема. В моем приложении C # MVC JQuery не распознавался. Мне нужно было переместить @ Scripts.Render ("~ / bundles / jquery") из нижней части моего файла _Layout.cshtml в начало раздела. Также убедитесь, что вы взяли Jquery как пакет Nuget, если вы используете visual studio!
источник
Есть способ сделать так, чтобы он автоматически загружал javascript до запуска остальной части кода.
Перейдите в Views \ Shared_Layout.html и добавьте следующее
источник
если
script
тег имеетdefer
атрибут, он показывает ошибкуи должен удалить атрибут
defer
изscript
тегаисточник
Это общая проблема, чтобы решить эту проблему, вы должны проверить
Полная информация дана в этом блоге, нажмите здесь
источник