添加额外的js文件会破坏jQuery IntelliSense

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

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

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

你放入vsdoc版本的任何东西都会出现在intellisense中。 如果需要,您可以放置​​要在intellisense中显示的数据结构的欺骗版本。

可能是其中一个次要引用的JavaScript文件中存在错误。 打开你的JS文件,一旦“更新JavaScript智能感知”已经从Visual Studio的状态栏中消失(有一个菜单选项会强制JS智能感知刷新,不记得它在哪里,我只是创建了一个键盘快捷键通过工具 – >选项 – >键盘区域)打开你的错误窗口,在警告下你应该找到智能感知无法加载的原因。

它通常是在解析其中一个文件时发现的一个错误,但是当我引用了大量文件时,我有堆栈溢出。

编辑 :您还应该确保安装了此VS补丁: http : //code.msdn.microsoft.com/KB958502和VS 2008 SP1(首先安装SP1!)。 然后你只需要:

///  

确保在intellisense文件中维护-vsdocs并自动拾取(只要它与您引用的文件位于同一文件夹中)

接受的答案帮助我解决了这个问题,但没有解决问题。 我安装了修补程序: 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文件的follwing文件会导致上述问题。

  

我在我的脚本文件夹中添加了一个空文件“jquery-ui-1.7.custom.min-vsdoc.js”,并且Jscript Intellisense问题消失了。

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

我根据上面的建议通过一个小扩展解决了这个问题:我的诀窍是在我的页面上添加一个引用到我的jqueryui.com库和我创建的文件的空白-vsdoc.js版本:

   

希望这可以帮助!

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

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

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

希望这会导致有人创建http://code.msdn.microsoft.com/KB958502和JScript IntelliSense团队。