2

我正在构建一个益智游戏。它确实在浏览器中工作,但我需要让它在 Visual Studio 上工作。它显示了图片和所有内容,但是当我单击时出现此错误

0x800a1391 - JavaScript 运行时错误:“onCanvasClick”未定义

我有这部分代码的prb

  <canvas id="myCanvas" width="640" height="480" onclick="onCanvasClick(event);"> 

它不接受 onCanvasClick(event);

我找不到让它工作的方法。如果您能帮助我,我将不胜感激。

4

2 回答 2

4

尝试这个:

canvas = document.getElementById("myCanvas");

// Beware, this is "click" not "onclick"
canvas.addEventListener('click', canvasClicked, false); 

function canvasClicked(e) {
    console.log("Clicked");
}

看到它jsFiddle

于 2013-04-14T19:41:43.887 回答
4

正如 Sam Rad 所提到的,您应该将事件侦听器添加到 <script> 标记中,而不是 HTML 中的内联标记。我认为您的函数未声明的原因是因为它是在不同的范围内声明的。当您在内联 HTML 脚本中使用它时,它会在全局范围内查找该函数。

所以如果你有这样的事情:

(funciton() {

    function canvasClicked( event ) {
        // ...
    }

})()

您的内联 HTML 脚本将失败。

只要避免使用内联 HTML 脚本,你就会让你的生活更轻松:D

于 2013-04-14T20:19:53.267 回答