Подтвердить что ты не робот

"JQuery" - undefined

Я работаю над проектом ASP.net, созданным с настройками локальной файловой системы. Я использую MVC и JQuery. JQuery отлично работает, когда я запускаю приложение в режиме отладки, то есть на сервере разработки ASP.net. Я пытаюсь разместить приложение в IIS 7. В режиме размещения он не распознает Jquery и дает ошибку сценария "JQuery undefined". Расположение файлов script не изменяется в обоих режимах. Может ли кто-нибудь понять, что может быть причиной и как решить эту проблему.

Мой код выглядит следующим образом:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="../../Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>

<script src="../../Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>

<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>

<!-- YUI Styles -->
<link href="../../Content/reset.css" rel="stylesheet" type="text/css" />
<link href="../../Content/fonts.css" rel="stylesheet" type="text/css" />
<link href="../../Content/grids.css" rel="stylesheet" type="text/css" />
<!-- /YUI Styles -->
<link href="../../Content/knowledgebase.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">
    //this hides the javascript warning if javascript is enabled
    (function($) {
        $(document).ready(function() {
            $('#jswarning').hide();
        });
    })(jQuery);
</script>

<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />

....

4b9b3361

Ответ 1

Попробуйте использовать вкладку Firebug 'Net', чтобы узнать, загружен ли файл.

Вы также можете настроить Firebug для сбоя при всех ошибках и посмотреть, когда происходит ошибка, по сравнению с загрузкой jQuery.

Ответ 2

0 Я не знаю, нашли ли вы решение проблемы или нет. Я столкнулся с той же проблемой и схожу с ума, чтобы понять, почему я получаю ошибку "jQuery is undefined" для подключаемых модулей. Я пробовал все решения, которые я получаю из Интернета, но мне не повезло.

Но, вдруг что-то всплеск на мой взгляд, что могут быть файлы script, должен быть в порядке. Итак, я переместил jquery referece на первую позицию, и все начинает работать как шарм.

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

  • ссылка на библиотеку jquery
  • ссылка на другие последующие подключаемые (зависимые) библиотеки и т.д.

например:

  • "script src=" js/jquery-1.3.2.min.js "type =" text/javascript "...
  • "script src=" js/jqDnR.min.js "type =" text/javascript "...
  • "script src=" js/jquery.jqpopup.min.js "type =" text/javascript "...
  • "script src=" js/jquery.bgiframe.min.js "type =" text/javascript "...

Всегда убедитесь, что вы должны сначала поставить ссылку jquery, а затем последующие библиотеки.

Надеюсь, это решает вашу проблему, особенно когда вы используете MasterPages. Очень странно, что он работает независимо от того, какой порядок вы используете, когда не используете MasterPages, но когда вы это делаете, он каким-то образом берет правильный порядок.

Удачи и счастливого кодирования,

Винсент Д'Суза

Ответ 3

После использования FIrebug я обнаружил, что файлы не были найдены, поскольку относительный путь к файлам не работает. Чтобы решить проблему, мы должны использовать метод Url.Content для перенаправления пути. Например:

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>

Ответ 4

Вы также можете попробовать предоставить jQuery для хоста Google для вас:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

Это позволит не беспокоиться об относительном пути к script, избегать загрузки на ваш сервер и будет быстрее для пользователей (у которых, вероятно, уже есть его в кеше браузера где-то).

Ответ 5

Я получил сообщение, получив несоответствие между версией JavaScript на странице и версией в проекте.

На странице: < script src= "@Url.Content(" ~/Scripts/ jquery-1.4.4.min.js ")"   тип = "текст/JavaScript" > </ script >

Фактическая версия в проекте: jquery-1.4.1.min.js

Диагностируется с помощью Firebug, и его установка показывает все ошибки, как описано в принятом ответе.

Ответ 6

Jquery?!
Вы имеете в виду Jquery?

Javascript чувствителен к регистру. Jquery не совпадает с Jquery.

Ответ 7

Чтобы уточнить ответ "text/javascript", "application/javascript" будет работать в firefox и загружать jQuery просто отлично. Однако он не загрузит файл в IE. Используйте "text/javascript":

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>

Ответ 8

Раджа прав, URL.Content работает.

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>

Кроме того, чтобы не удивляться, когда вы переносите приложение на сервер IIS, не используйте сервер веб-разработки, а используйте IIS при разработке.

Вы можете использовать IIS непосредственно из визуальной студии, отредактировав свойства веб-сайта:

  • Перейдите на вкладку "Веб"
  • Установите флажок "Использовать локальный веб-сервер IIS"
  • Нажмите "Создать виртуальный каталог"
  • Перейдите в диспетчер IIS, чтобы отключить анонимный доступ в созданном виртуальном каталоге, если это применимо.

Ответ 9

Одна дополнительная причина этой ошибки, о которой я узнал, возникает, если вы загружаете jQuery из cdn и локального script с вашего сервера. Они загружаются независимо, поэтому, если локальная обработка script перед jQuery также будет выполнена до этого, что дает нам прекрасную ошибку. Это особенно важно, если jQuery не находится в браузерах, поэтому вы можете увидеть эту ошибку в первый раз, когда скрипты загружаются и исчезают позже.

Ответ 10

Для меня эта ошибка обычно возникает, когда в моем коде присутствует истинная ошибка Javascript. Это не позволяет полностью проанализировать файл jQuery.js. Просмотрите консоль ошибок в Firebug, Safari или другом дружественном к отладке браузере.

Ответ 11

Общими ошибками являются то, что другие Jquery Scripts включены сначала (Jquery.validation.js) перед Jquery.js

Ответ 12

Это обычно происходит, когда у вас есть неправильный HTML или JavaScript.

Ответ 13

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

Ответ 14

Если все остальное не работает, убедитесь, что файл имеет права доступа. Это случилось со мной!

Вы можете щелкнуть правой кнопкой мыши файл в своем каталоге и установить там разрешение, или просто создайте еще один .js файл в Visual Studio и скопируйте и вставьте содержимое. Работал как шарм.:)

Ответ 15

попробовать

<script src="<%= ResolveUrl("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>

Ответ 16

Путь неверен. Дважды проверьте его.

Ответ 17

Чтобы добавить мою проблему/решение в этот длинный список...

Я использовал Windows 2003 для тестирования сайта в IE7. Сайт подошел отлично, но jQuery не запускался вообще. Поэтому я пошел прямо к http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js и обнаружил, что ajax.googleapis.com не был в списке безопасных сайтов. После добавления *.googleapis.com все работало нормально. Глупый надзор, но, возможно, это поможет кому-то еще в подобной ситуации.

Ответ 18

Я решил эту проблему, раскомментировав ссылку jQuery в своем _Layout.cshtml. После перезагрузки сайта все только начало работать.

Ответ 19

Правильно! Я преследовал это в течение нескольких дней, когда вы используете новый проект MVC с нуля в VS, он имеет свои собственные ссылки на JQuery на странице Layout.cshtml. Если вы пытаетесь ссылаться на JQuery на странице, она будет перезаписана ссылкой на странице Layout.cshtml. Прокомментируйте код на главной странице (Layout.cshtml), и он будет использовать ваши ссылки на страницы.