«JQuery» не определено - PullRequest
       47

«JQuery» не определено

22 голосов
/ 04 декабря 2008

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

Мой код выглядит так:

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

....

Ответы [ 19 ]

41 голосов
/ 31 августа 2009

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

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

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

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

например:

  1. "script src =" js / jquery-1.3.2.min.js "type =" text / javascript "...
  2. "script src =" js / jqDnR.min.js "type =" text / javascript "...
  3. "script src =" js / jquery.jqpopup.min.js "type =" text / javascript "...
  4. "script src =" js / jquery.bgiframe.min.js "type =" text / javascript "...

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

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

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

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

21 голосов
/ 04 декабря 2008

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

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

4 голосов
/ 29 ноября 2011

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

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

Актуальная версия в проекте: jquery-1.4.1 .min.js

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

4 голосов
/ 05 декабря 2008

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

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

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

4 голосов
/ 04 декабря 2008

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

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
3 голосов
/ 31 марта 2010

Чтобы уточнить ответ "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>
3 голосов
/ 04 декабря 2008

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

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

2 голосов
/ 10 февраля 2011

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

2 голосов
/ 10 марта 2009

Раджа прав, URL. Содержание работает.

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

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

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

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

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

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...