javascript - 脚本夏普 : Uncaught TypeError: Object #<HTMLInputElement> has no method 'apply'

标签 javascript script#

我是 Script# 新手,我编写了以下示例代码来学习使用 Script# 进行事件处理:

public class Class1
{    
    private bool ispressed;
    private int startX;
    private int startY;
    private int endX;
    private int endY;

    private CanvasElement canvas;
    private CanvasContext2D context;
    private Element createNumberLine;
    public Class1()
    {
        ispressed = false;

        canvas = (CanvasElement)Document.CreateElement("canvas");
        canvas.ID = "canvas";
        canvas.SetAttribute("width", "500");
        canvas.SetAttribute("height", "500");
        canvas.Style.Border = "2px Solid #000000";
        Document.Body.AppendChild(canvas);
        context = (CanvasContext2D)canvas.GetContext("2d");

        canvas.AddEventListener("click", CreateNumberLine, false);

        createNumberLine = (Element)Document.CreateElement("input");
        createNumberLine.SetAttribute("type", "button");
        createNumberLine.SetAttribute("width", 100);
        createNumberLine.SetAttribute("height", 50);
        createNumberLine.SetAttribute("value", "Create Number Line");
        createNumberLine.AddEventListener("click", CreateNumberLine, false);
        Document.Body.AppendChild(createNumberLine);



    }
    ...
    ...
    private void CreateNumberLine(ElementEvent e)
    {
        Script.Alert("asd");
        //context.Restore();
        startX = 100;
        endX = 700;
        startY = 200;
        endY = 200;
        context.MoveTo(startX, startY);
        context.LineTo(endX, endY);
        context.StrokeStyle = "#00ff00";
        context.Stroke();       
    }
}

这是我的 HTML:

<head>
<title></title>
<script src="Scripts/debug/mscorlib.debug.js" type="text/javascript"></script>
<script src="Scripts/debug/ScriptLibrary1.debug.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
var script;
window.onload = function () {
    script = new ScriptLibrary1.Class1();
}
</script>
</body>

但是当我在浏览器中运行此代码并单击按钮时,我收到 Uncaught TypeError: Object # has no method 'apply' 异常。我没有使用任何第三方 JavaScript 库。我无法弄清楚这段代码有什么问题。一些帮助将不胜感激。谢谢。

最佳答案

我得到了这个问题的答案。

这一行:

createNumberLine.AddEventListener("click", CreateNumberLine, false);

应替换为:

if (Script.isNotNullofUnDefined)
{
     createNumberLine.AddEventListener("click", CreateNumberLine, false);
}

createNumberLine.AddEventListener("click", delegate(ElementEvent e)
{
    CreateNumberLine;
}, false);

关于javascript - 脚本夏普 : Uncaught TypeError: Object #<HTMLInputElement> has no method 'apply' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17676319/

相关文章:

c# - 如何使用 ScriptSharp 动态生成 javascript?

脚本#,如何诊断 "Check that your C# source compiles and that you are not using an unsupported feature"

javascript - jQuery 发布类似问题

javascript - 将 UTC 时间添加到我的倒计时器

javascript - 如果禁用 javascript,.htc 样式的行为是否仍然有效?

javascript - 为什么 Javascript Replace() 函数不执行任何操作?

javascript - 在旋转的 CANVAS 上绘图 - 第 2 部分

.net - 在网站/Web 应用程序项目和 Script#/ScriptSharp 之间共享代码

jquery - 在脚本中指定 jQuery 别名#