我是一位经验丰富的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>
alert()
直接调用<script>
而立即显示警报,而不是定义将调用的函数alert()
。剩下的什么都不做,因为的大小写onclick
。
onclick
代替onClick