Я использовал jQuery IntelliSense в VS2008, и это было здорово. Недавно я добавил ссылку на jQuery UI, и с тех пор jQuery IntelliSense ушел. Я обнаружил, что как только вы ссылаетесь на другой файл .js в своем документе, IntelliSense исчезает. Есть ли способ избежать этого?
Добавление дополнительных файлов js нарушает работу jQuery IntelliSense
Ответы (6)
Если есть ошибки в каких-либо файлах, на которые есть ссылки, это нарушит intellisense для всех ссылок на файлы из того же документа. Следующая версия Visual Studio будет намного более надежной в этом отношении. Прошу прощения непосредственно за эту хрупкость. На раннем этапе мы приняли некоторые проектные решения, которые не позволили нам сделать внешние ссылки VS9 более надежными.
А пока воспользуйтесь следующим обходным путем. Установите SP1 по ссылке, которую вам дал Slace. Если у вас есть ссылка на файл с именем .js и в том же месте есть файл с именем -vsdoc.js, тогда JS intellisense подберет версию -vsdoc. Если этот сценарий пуст, он не выдаст ошибку. Определите плагин jquery, который вызывает сбой генерации intellisense, и поместите рядом с ним версию -vsdoc. Вы не получите intellisense для пользовательского интерфейса, но вы все равно получите jquery и другие плагины, которые действительно работают.
Все, что вы добавили в версию vsdoc, будет отображаться в intellisense. Вы можете поместить поддельные версии структур данных, которые хотите отображать в intellisense, если хотите.
Вероятно, это ошибка в одном из файлов JavaScript, на которые часто ссылаются. Откройте свой JS-файл, и как только «Обновление JavaScript Intellisense» исчезнет из строки состояния Visual Studio (есть опция меню, которая заставит JS intellisense обновиться, не помню, где это, я только что создал сочетание клавиш через Инструменты -> Параметры -> Область клавиатуры) откройте окно Ошибки и в разделе Предупреждения вы должны найти причину, по которой не удалось загрузить intellisense.
Обычно это ошибка, обнаруживаемая при разборе одного из файлов, но у меня были переполнения стека, когда у меня было много ссылок на файлы.
Изменить: убедитесь, что у вас установлен этот патч VS: http://code.msdn.microsoft.com/KB958502 и VS 2008 SP1 (сначала установите SP1!). Тогда вам просто необходимо иметь:
/// <reference path="/path/to/jquery-1.3.1.js" />
Убедитесь, что вы поддерживаете -vsdocs
в файле intellisense, и он будет автоматически выбран (если он находится в той же папке, что и файл, на который вы ссылаетесь)
Принятый ответ помог мне исправить эту проблему, но не решил проблему. Я установил исправление: http://code.msdn.microsoft.com/KB958502, но было все еще получаю ошибку.
Ошибка:
Error updating JScript IntelliSense: D:\Dev\Test\Scripts\jQuery-1.3.2-vsdoc.js: 'jQuery.support.htmlSerialize' is null or not an object @ 1430:4
Похоже, что добавление файла follwing без соответствующего файла -vsdoc.js вызывает указанную выше проблему.
<script src="../../Scripts/jquery-ui-1.7.custom.min.js" type="text/javascript"></script>
Я добавил пустой файл «jquery-ui-1.7.custom.min-vsdoc.js» в папку со сценариями, и проблема с Jscript Intellisense исчезла.
Хочу предложить немного лучшее решение. Несколько месяцев назад я решил эту проблему и создал очень простой файл vsdoc для пользовательского интерфейса jQuery. Вот ссылка на сообщение в блоге (в котором есть файл для загрузки).
Я решил это в соответствии с приведенным выше советом с небольшим расширением: уловка для меня заключалась в том, чтобы добавить ссылку на мою страницу как на мою библиотеку jqueryui.com, так и на пустую версию -vsdoc.js файла, который я создал:
<script type="text/javascript" src="../../Scripts/jquery-ui-1.7.2.custom.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery-ui-1.7.2.custom.min-vsdoc.js"></script>
Надеюсь это поможет!
Отлично, настройка заключается в создании пустого файла * -vsdoc.js для каждого проблемного файла * .js.
Я обнаружил, что эта ошибка вызвана анонимной функцией, например. нравится:
(function($) {
$.anything...;
})(jQuery);
Надеюсь, это поможет кому-нибудь создать http://code.msdn.microsoft.com/KB958502 и JScript IntelliSense Team.