【发布时间】:2012-04-10 10:30:31
【问题描述】:
我是一名经验丰富的 Java 程序员,但我在大约十年来第一次看到一些 JavaScript/HTML5 的东西。我完全不知道什么应该是有史以来最简单的事情。
作为一个例子,我只是想画一些东西并向它添加一个事件处理程序。我确定我在做一些愚蠢的事情,但我已经搜索了所有内容,但没有任何建议(例如,这个问题的答案:Add onclick property to input with 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>
【问题讨论】:
-
使用
onclick而不是onClick -
详细说明为什么这些尝试不起作用...前几个 cmets 立即显示警报,因为您直接在
<script>中调用alert(),而不是定义将致电alert()。由于onclick的大写,其余的什么都不做。 -
你可以使用这个库 jsfiddle.net/user/zlatnaspirala/fiddles ,看看 bitbucket.org/nikola_l/visual-js 。您将获得很多功能 +
标签: javascript html canvas event-handling onclick