jQuery не определено на странице содержимого при использовании главных страниц, которые имеют ссылку на jQuery - PullRequest
2 голосов
/ 19 июля 2010

У меня есть вложенная главная страница.Родительская главная страница, дочерняя главная страница и страница содержимого, главная страница которой является дочерней главной страницей.У меня есть ссылка на JQuery на родительской главной странице в разделе заголовка. <script type="text/javascript" src='<%#ResolveUrl("~/includes/jquery-1.4.2.min.js") %>' ></script> & Page.Header.DataBind ();в событии OnLoad.

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

Вопрос: Если ссылка на jQuery находится в разделе заголовка главной страницы, почему страницы содержимого не могут использовать jQuery?Когда я делаю просмотр исходного кода, там есть тег script с jQuery, и он работает.

Главные страницы и страница содержимого объединяются во время рендеринга и отправляются в браузер как одна html-страница, поэтому я не уверен, что при использовании главных страниц ссылки jQuery прерываются.

ОБНОВЛЕНИЕ:

Когда я изменил «$ .ready (function ()» на «jQuery (document) .ready (function ($)», это сработало! Я не загружаю другие библиотеки javascript, и яя не использую MS Ajax.

1 Ответ

0 голосов
/ 19 июля 2010

Во-первых, я раньше этого не замечал, но ваш первоначальный вызов $.ready(function() {}) не сработал, но jQuery(document).ready(function() {}) сработал?Работает ли ваш звонок, если вы используете $(document).ready(function () {} )?Просто хотел убедиться, что это не опечатка.Документы jQuery говорят, что $.ready(function() {}) допустимо, но это не рекомендуется.

ОК, если предположить, что это не опечатка, это определенно похоже на конфликт с переменной '$'.Если вы используете сторонние элементы управления или ASP.NET AJAX, вы можете столкнуться с конфликтами (даже если вы явно не включаете файл JS).

Если вы можете публиковать то, что получает браузерпосле загрузки страницы это поможет.

Кроме того, если вы запустите Fiddler (или какой-либо другой инструмент запроса трафика), вы сможете увидеть, загружаются ли какие-либо ссылки JS.Ищите не только файлы .JS, но и файлы .AXD (некоторые сторонние инструменты называют эти файлы ScriptResource.axd или WebResource.axd, и они могут переопределять переменную '$').

Возможно, вы захотитепроверить эту ссылку на странице API jQuery о функции noConflict.Это помогает, когда у вас конфликт с переменной $.

Не видя выходных данных, диагностировать сложно.Но, надеюсь, это поможет.

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