gpt4 book ai didi

javascript - 添加 onClick 事件动态 DOM 对象

转载 作者:行者123 更新时间:2023-11-28 08:36:51 25 4
gpt4 key购买 nike

我正在编写基本的气球游戏。气球是动态创建到 Canvas 中的。一切正常,但我无法添加 onclick 事件来隐藏气球。开始游戏的第一个函数是Baslat()。这是我的代码:

var canvas; 
var sev = 1;
var zorluk = 3;
var ctx;

function Baslat() {
var x;
for (x = 1; x <= sev*zorluk; x++) {
BalonYap(x);
}
}

function seviye(a) {
sev = a.value;
}

function BalonYap(id) {

var img = new Image();
img.src = "balon.png";
img.id = "balon_"+id;
img.onload = BalonLoad(img); // works
img.onclick = Patlat(id); // doesn't work

}

function BalonLoad(img) {
var rnd1 = Math.floor(Math.random() * 750)+10;
var rnd2 = Math.floor(Math.random() *350)+10;
canvas = document.getElementById('myCanvas');
context = canvas.getContext("2d");
context.drawImage(img, rnd1, rnd2);
}

function Patlat(img) {
alert();
}

最佳答案

您需要将函数分配给事件处理程序。如果你给一个函数提供参数,它就会被调用。您可以尝试这个工厂方法(您可以向包装函数提供任意参数并在返回函数的闭包中使用它们):

function BalonLoad(img) {
return function() {
var rnd1 = Math.floor(Math.random() * 750)+10;
var rnd2 = Math.floor(Math.random() *350)+10;
canvas = document.getElementById('myCanvas');
context = canvas.getContext("2d");
context.drawImage(img, rnd1, rnd2);
}
}

关于javascript - 添加 onClick 事件动态 DOM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com