9

我一直在 VS2008 中使用 jQuery IntelliSense,它非常棒。最近我添加了对 jQuery UI 的引用,从那时起,jQuery IntelliSense 就消失了。我发现一旦您在文档中引用另一个 .js 文件,IntelliSense 就会消失。有什么办法可以避免这种情况?

4

6 回答 6

13

如果任何引用的文件中存在错误,它将破坏来自同一文档的所有文件引用的智能感知。Visual Studio 的下一个版本在这方面将更加强大。我为这种脆弱性直接道歉。我们很早就做出了一些设计决定,阻止我们使 VS9 外部引用更加健壮。

同时,使用以下解决方法。从 Slace 给你的链接安装 SP1。如果您引用了一个名为 .js 的文件,并且在同一位置有一个名为 -vsdoc.js 的文件,那么 JS intellisense 将选择 -vsdoc 版本。如果该脚本为空,则不会产生错误。确定导致智能感知生成失败的 jquery 插件,并在其旁边放置一个 -vsdoc 版本。你不会得到 UI 的智能感知,但你仍然会得到 jquery 和其他可以工作的插件。

您放入 vsdoc 版本的任何内容都将显示在智能感知中。如果需要,您可以将要显示的数据结构的欺骗版本放入智能感知中。

于 2009-02-21T01:02:31.507 回答
8

很可能在随后引用的 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" />

确保您维护-vsdocsintellisense 文件,它将被自动拾取(只要它与您引用的文件位于同一文件夹中)

于 2009-02-17T02:18:38.093 回答
8

接受的答案帮助我解决了这个问题,但没有解决问题。我安装了修补程序: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 问题就消失了。

于 2009-03-18T14:39:12.637 回答
2

我想提出一个稍微好一点的解决方案。几个月前,我解决了这个问题并为 jQuery UI 创建了一个非常基本的 vsdoc 文件。这是博客文章的链接(其中包含可供下载的文件)。

于 2009-12-18T04:13:54.667 回答
1

我根据上面的建议通过一个小扩展解决了这个问题:对我来说,诀窍是在我的页面上添加对我的 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>

希望这可以帮助!

于 2009-09-21T15:43:37.777 回答
1

太好了,调整是为每个麻烦的 *.js 文件创建一个空的 *-vsdoc.js 文件。

我发现这个错误是由匿名函数引起的,例如:

(function($) {
    $.anything...;
})(jQuery);

希望这将有助于创建http://code.msdn.microsoft.com/KB958502和 JScript IntelliSense 团队的人。

于 2010-05-05T02:00:21.250 回答