Javascript VisualStudio2008/2010中对jQuery闭包的Intellisense支持{
我正在尝试让Intellisense正确地为闭包工作。作为插件作者,我总是使用闭包为我的插件代码创建一个隔离的环境:Javascript VisualStudio2008/2010中对jQuery闭包的Intellisense支持{,javascript,jquery,visual-studio,intellisense,closures,Javascript,Jquery,Visual Studio,Intellisense,Closures,我正在尝试让Intellisense正确地为闭包工作。作为插件作者,我总是使用闭包为我的插件代码创建一个隔离的环境: (function($) { // code here })(jQuery); 但是这里的问题是Intellisense没有检测到函数执行过程中传递了jQuery。在上面的代码中添加$=jQuery可以解决问题,但这只是执行不佳,IMHO 这里的任何人在没有使用嵌入式ASP服务器标签(这是一个独立的JS文件)的情况下都能做到这一点?最好不包括修改现有代码,而不是一些奇怪的/
(function($) {
// code here
})(jQuery);
但是这里的问题是Intellisense没有检测到函数执行过程中传递了jQuery。在上面的代码中添加$=jQuery可以解决问题,但这只是执行不佳,IMHO
这里的任何人在没有使用嵌入式ASP服务器标签(这是一个独立的JS文件)的情况下都能做到这一点?最好不包括修改现有代码,而不是一些奇怪的
//
-类似解决方案?在您的帖子或评论中不清楚,但在.JS文件的顶部,您是否添加了://
到你的档案的顶端 在外部库中有更多关于intellisense的内容(不是特定于jQuery) 另外,这里还有另一个可能的解决方案,这就是您在
$=jQuery
中提到的解决方案吗
(function($) { // private closure; <% /*debug*/ if (false) { %>
$ = jQuery;
// <% } /*end debug*/ %>
$(function() {
// do stuff
});
})(jQuery);
(函数($){//私有闭包;
$=jQuery;
//
$(函数(){
//做事
});
})(jQuery);
可在此处找到:但在安装修补程序之前,请确保您的系统中已安装SP1。我很惊讶这在VS2010中不起作用(我认为您无法在VS2008中使其起作用) 您可以尝试将xml文档注释添加到开始闭包中,以定义参数类型。如下所示: ///
(我不知道jquery对象的类名是什么——或者是否有可用的类名)。如果您正在查看Visual Studio 2010的jquery插件开发IDE,您已经做出了正确的选择。以下是安装的详细信息:
http://www.asp.net/ajaxlibrary/cdn.ashx
。以下是上面CDN中最新jQuery链接的链接:
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.js
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1-vsdoc.js
/// <reference path="/path/to/jquery.js">
//
/// <reference path="jquery.js" />
(function ($) {
/// <param name="$" type="jQuery" />
jQuery.fn.gallery = function () {
return this.each(function () {
// your code here
});
};
})(jQuery);
//
(函数($){
///
jQuery.fn.gallery=函数(){
返回此。每个(函数(){
//你的代码在这里
});
};
})(jQuery);
//
作为插件结束的第一行,正如我在上面的代码中所演示的那样。在VisualStudio2010SP1中,这一切都适用于我访问并是的,我已经添加了引用,但它不适用于解决这个特定问题(jQuery被引用很好,但是带有闭包的引用不起作用)。这正是我试图不使用的条件服务器端语句的类型,因为我使用的是静态Javascript文件,而不是ASPX/ASCX页面的代码。似乎这种特定情况是Intellisense引擎本身的一个限制。它无法识别函数是以jQuery作为参数传入的。这个问题,however无法解决静态Javascript文件的问题,但只能解决已处理文件的问题,如之前安装的ASPX和ASCX.SP1。正如我所说,Intellisense可以工作,但不适用于此特定情况。使用VS2010为我工作!将类型设置为“jQuery”。第3步非常神奇!感谢您分享这一点。使用Visual Studio 2012 beta对我非常有用。