如何将简单的 onClick 事件处理程序添加到画布元素?
我是一个经验丰富的Java程序员,但大约十年来我第一次看到一些JavaScript / HTML5的东西。我完全陷入了有史以来最简单的事情。
作为一个例子,我只想绘制一些东西并向其添加一个事件处理程序。我确信我正在做一些愚蠢的事情,但我已经搜索了所有内容,并且没有建议(例如,这个问题的答案:添加onclick属性以使用JavaScript输入)都不起作用。我使用的是 Firefox 10.0.1。我的代码如下。您将看到几行带注释的行,每个行的末尾都描述了发生了什么(或没有发生什么)。
这里的正确语法是什么?我快疯了!
<html>
<body>
<canvas id="myCanvas" width="300" height="150"/>
<script language="JavaScript">
var elem = document.getElementById('myCanvas');
// elem.onClick = alert("hello world"); - displays alert without clicking
// elem.onClick = alert('hello world'); - displays alert without clicking
// elem.onClick = "alert('hello world!')"; - does nothing, even with clicking
// elem.onClick = function() { alert('hello world!'); }; - does nothing
// elem.onClick = function() { alert("hello world!"); }; - does nothing
var context = elem.getContext('2d');
context.fillStyle = '#05EFFF';
context.fillRect(0, 0, 150, 100);
</script>
</body>