我有多个javascript文件,他们有自己的功能。如果我将其中一个引用到其中任何一个内部,如果该函数不是原型,它就不会看到它的函数。智能感知中的逻辑是什么?
我想在下面使用具有Intellisense功能的Splash功能,我该怎么做?
//My.js
/// <reference path="Test.js" />
//Test.js
NameSpace.prototype.UI = new function () {
this.Splash = function (value) {
try {
if (value == 1) {
$('#splash').css('height', $(document).height());
$('#splashContent').css('top', $(window).height() / 2);
$('#splash').fadeIn();
$('#splashContent').fadeIn();
setTimeout("SF.UI.Splash(0)", 3000);
}
else if (value == 0) {
$('#splash').fadeOut(1000);
$('#splashContent').fadeOut(1000);
}
else if (value == 3) {
$('#splash').css('height', $(document).height());
$('#splashContent').css('top', $(window).height() / 2);
$('#splash').fadeIn();
$('#splashContent').fadeIn();
}
} catch (e) {
Splash(0);
}
}
}
答案 0 :(得分:3)
JS Intellisense充其量只是片状。尽管有这些文章,根据我的经验,它并不像宣传的那样有效。我建议:
/// <reference path="Test.js" />
是JS中的第一行。Test.js
文件中没有错误(确保在其上运行JSLint)或使用vsdoc方法。Output
工具窗口,看它是否包含与更新智能感知相关的任何错误。这将帮助您排除故障并删除引用的JS文件中的错误。创建Test-vsdoc.js
文件的替代方法(这样,即使主JS文件有错误,也不会导致intellisense失败):
//Test-vsdoc.js
NameSpace.prototype.UI = new function () {
this.Splash = function (value) {
/// <summary>This is my function summary</summary>
}
}
VS会在下次重启IDE时自动包含它(或尝试强制更新 Ctrl + Shift + J )
答案 1 :(得分:1)
假设这是你的js文件的实际内容,包括//My.js
评论,那么这就是你的问题。
/// <reference
评论必须位于文件的最顶层,在任何其他内容之前,否则它们将无效。
旁注,您知道该引用的代码段吗?其ref
,然后是标签 标签。您也可以拖放文件并获取评论。
完成参考后,您可以在编辑时按 Ctrl + Shift + J 强制VS2010刷新您的js注释.js文件