Saya seorang programmer Java yang berpengalaman tetapi saya melihat beberapa hal JavaScript / HTML5 untuk pertama kalinya dalam sekitar satu dekade. Saya benar-benar bingung tentang apa yang seharusnya menjadi hal paling sederhana yang pernah ada.
Sebagai contoh, saya hanya ingin menggambar sesuatu dan menambahkan event handler ke dalamnya. Saya yakin saya melakukan sesuatu yang bodoh, tetapi saya sudah mencari di mana-mana dan tidak ada yang disarankan (misalnya jawaban untuk pertanyaan ini: Tambahkan properti onclick untuk diinput dengan JavaScript ) berfungsi. Saya menggunakan Firefox 10.0.1. Kode saya berikut. Anda akan melihat beberapa baris yang dikomentari dan di akhir masing-masing adalah deskripsi tentang apa (atau apa yang tidak) terjadi.
Apa sintaks yang benar di sini? Saya menjadi gila!
<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()
langsung <script>
, alih-alih mendefinisikan fungsi yang akan memanggil alert()
. Sisanya tidak melakukan apa-apa karena kapitalisasi onclick
.
onclick
sebagai gantionClick