我一直在 VS2008 中使用 jQuery IntelliSense,它非常棒。最近我添加了对 jQuery UI 的引用,从那时起,jQuery IntelliSense 就消失了。我发现一旦您在文档中引用另一个 .js 文件,IntelliSense 就会消失。有什么办法可以避免这种情况?
6 回答
如果任何引用的文件中存在错误,它将破坏来自同一文档的所有文件引用的智能感知。Visual Studio 的下一个版本在这方面将更加强大。我为这种脆弱性直接道歉。我们很早就做出了一些设计决定,阻止我们使 VS9 外部引用更加健壮。
同时,使用以下解决方法。从 Slace 给你的链接安装 SP1。如果您引用了一个名为 .js 的文件,并且在同一位置有一个名为 -vsdoc.js 的文件,那么 JS intellisense 将选择 -vsdoc 版本。如果该脚本为空,则不会产生错误。确定导致智能感知生成失败的 jquery 插件,并在其旁边放置一个 -vsdoc 版本。你不会得到 UI 的智能感知,但你仍然会得到 jquery 和其他可以工作的插件。
您放入 vsdoc 版本的任何内容都将显示在智能感知中。如果需要,您可以将要显示的数据结构的欺骗版本放入智能感知中。
很可能在随后引用的 JavaScript 文件之一中存在错误。打开你的JS文件,一旦“Updaing JavaScript Intellisense”从Visual Studio的状态栏中消失(有一个菜单选项会强制JS 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
似乎在没有适当的 -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 问题就消失了。
我想提出一个稍微好一点的解决方案。几个月前,我解决了这个问题并为 jQuery UI 创建了一个非常基本的 vsdoc 文件。这是博客文章的链接(其中包含可供下载的文件)。
我根据上面的建议通过一个小扩展解决了这个问题:对我来说,诀窍是在我的页面上添加对我的 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>
希望这可以帮助!
太好了,调整是为每个麻烦的 *.js 文件创建一个空的 *-vsdoc.js 文件。
我发现这个错误是由匿名函数引起的,例如:
(function($) {
$.anything...;
})(jQuery);
希望这将有助于创建http://code.msdn.microsoft.com/KB958502和 JScript IntelliSense 团队的人。