我应该怎么做才能在 Visual Studio 中为我自己的 js 库获取 javascript 智能感知

发布于 2024-11-16 16:57:20 字数 1164 浏览 0 评论 0 原文

我有多个 javascript 文件,它们有自己的功能。如果我在其中任何一个内部引用其中一个,如果该函数不是原型,它就看不到它的函数。 Intellisense 内部的逻辑是什么?

我想将 Splash 功能与下面的 Intellisense 功能一起使用,我该怎么做?

//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);
        }
    }
}

I have multiple javascript files and they have their own functions. If I make reference one of them to inside any of them, it doesnt see its functions if the function is not prototype. What is logic inside the Intellisense ?

I want to use Splash function with Intellisense feature below, how can I do that ?

//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);
        }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

各自安好 2024-11-23 16:57:20

JS Intellisense 充其量是不稳定的。尽管有所有这些文章,但根据我的经验,它并不像广告中那样起作用。我建议:

  • 确保所有 JS 文件都在同一个项目中(让 ti 跨项目工作甚至更棘手)。
  • 确保 /// 是 JS 中的第一行。
  • 确保 Test.js 文件中没有错误(对其运行 JSLint 以确保)或使用 vsdoc 方法。
  • 查看Output 工具窗口,看看它是否包含与更新智能感知相关的任何错误。这将帮助您排除故障并删除引用的 JS 文件中的错误。

创建 Test-vsdoc.js 文件的替代方法(这样,即使你的主 JS 文件有错误,也不会导致智能感知失败):

//Test-vsdoc.js
NameSpace.prototype.UI = new function () {

    this.Splash = function (value) {
    /// <summary>This is my function summary</summary>
    }
}

下次重新启动 IDE 时 VS 会自动包含它(或尝试强制更新Ctrl+Shift+J

JS Intellisense is flaky at best. Despite all those articles, in my experience, it doesn't work as advertised. I would suggest:

  • Make sure all your JS files are in the same project (making ti work across projects is even trickier).
  • Make sure /// <reference path="Test.js" /> is the very first line in JS.
  • Make sure there are no errors in the Test.js file (run JSLint on it to be sure) or use the vsdoc approach.
  • Look at the Output tool window to see if it contains any errors related to updating intellisense. This will help you troubleshoot and remove errors in your referenced JS file.

Alternative to create a Test-vsdoc.js file (this way, even if your main JS file has errors, it would not cause intellisense to fail) :

//Test-vsdoc.js
NameSpace.prototype.UI = new function () {

    this.Splash = function (value) {
    /// <summary>This is my function summary</summary>
    }
}

VS would automatically include it next time you restart the IDE (or try a force update Ctrl+Shift+J)

情绪操控生活 2024-11-23 16:57:20

假设这是您的 js 文件的实际内容,包括 //My.js 注释,那么这就是您的问题。

/// 注释必须位于文件的最顶部,位于任何其他内容之前,否则它们将不起作用。

旁注,您知道有一个可供参考的代码片段吗?它的 ref,然后是 tab tab。您还可以拖放文件并获取评论。

完成引用后,您可以在编辑 .js 文件时按 Ctrl+Shift+J 强制 VS2010 刷新 js 注释

Assuming that is the actual contents of your js file, including the //My.js comment, then that is your problem right there.

/// <reference comments must be at the very top of the file, before any other content, otherwise they will not work.

Side note, did you know there is a code snippet for that reference? its ref, then tab tab. Also you can drag / drop a file and get the comment.

Once you have your references done, you can force VS2010 to refresh your js comments by pressing Ctrl+Shift+J while editing the .js file

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文