增加了围绕MVC/Kendo行为的JavaScript内联注释中断

Addition of JavaScript inline comment breaks surrounding MVC/Kendo behaviour

本文关键字:JavaScript 中断 注释 MVC Kendo 增加      更新时间:2023-09-26

我正在努力开发一个应用程序,将允许用户输入数据的事情。这个东西可以是全部的,也可以是部分的,几乎所有其他的东西都需要从这个拐点输入变化。我已经成功地构建了这个应用程序,当用户做出这个选择后调用以下JavaScript函数时,一切都工作得很完美:

function selectedFullOrPartial()
{
    var pullDown = $("#fullOrPartial");
    pullDown.data("kendoDropDownList").enable(false);
    if (pullDown.val() == 1)
    {
        alert("You chose full");
    }
    else
    {
        alert("You chose partial");
    }
}

然而,当我这样写这个函数时:

function selectedFullOrPartial()
{
    var pullDown = $("#fullOrPartial");
    pullDown.data("kendoDropDownList").enable(false);
    if (pullDown.val() == 1)
    {
        //They chose full
        alert("You chose full");
    }
    else
    {
        alert("You chose partial");
    }
}

这足以改变周围环境的行为,以至于选择全部/部分的对话框甚至不会出现(一个条目在它应该的时候以null作为其值生成)。快速查看控制台会发现错误"Uncaught SyntaxError: Unexpected end of input"。

另一个有趣的注意事项:块注释工作得很好,无论它们存在于单行还是多行。

一个简单的注释怎么可能破坏任何类型的代码?我认为它们总是在编译时被所有东西忽略。除了将所有内联注释转换为块注释之外,我还有其他选择吗?

Try this:
var pullDown = $("#fullOrPartial");
    pullDown.data("kendoDropDownList").enable(false);
    if (pullDown.data("kendoDropDownList").value() == 1)
    {
        //They chose full
        alert("You chose full");
    }
    else
    {
        alert("You chose partial");
    }
changed val() to value().

事实证明,我所处的环境导致我的整个JavaScript函数压缩为一行代码(以及它周围自动生成的一堆东西)。因为这一行并没有在我的内联注释之后结束,它实际上删除了相当多的东西,这就是导致错误行为的原因。

似乎只使用块注释的解决方案是解决这个问题的方法。