gpt4 book ai didi

javascript - 附加到 img 时不会在 javascript 中触发 OnClick 事件

转载 作者:行者123 更新时间:2023-11-30 15:45:07 26 4
gpt4 key购买 nike

我是 JavaScript 的新手,所以这可能是基础...

我正在尝试动态创建图像并将其添加为“onclick”的事件监听器。我将此 img 添加到 div

我这样创建 img:

function createNewSmiley()
{
var newSmiley = document.createElement("img");
newSmiley.src = "./smiley.jpg";
newSmiley.alt = "Smiley Image";
newSmiley.style.width = "64px";
newSmiley.style.height = "64px";
return newSmiley;
}

然后我将它添加到 div 中,就像这样使用:

function positionNewSmiley(parent, smiley, x, y)
{
var newSmiley = createNewSmiley();
newSmiley.style.top = y + "px";
newSmiley.style.left = x + "px";
parent.appendChild(newSmiley);
}

这是我的主要功能:

function main(smileyCount)
{
var myDiv = document.getElementById("myDiv");
for (var i = 0; i < smileyCount;i++)
{
var x = Math.floor((Math.random() * 500));
var y = Math.floor((Math.random() * 500));
var smiley = createNewSmiley();
smiley.onclick = smileyClicked;
positionNewSmiley(myDiv, smiley, x, y);
}
}

function smileyClicked(ev) {
alert("OK");
}

但是 onclick 事件不会触发!

但是,如果我将事件监听器添加到 div - 它会。

我做错了什么?

最佳答案

正如上面评论中提到的,当您必须定位传递的 smiley 时,您正在 positionNewSmiley 中创建新的 smiley :

var smiley = createNewSmiley();
smiley.onclick = smileyClicked;

positionNewSmiley(myDiv, smiley, x, y);
_________________________^^^^^^

只需在位置函数中使用它:

function positionNewSmiley(parent, smiley, x, y)
{
smiley.style.top = y + "px";
smiley.style.left = x + "px";

parent.appendChild(smiley);
}

希望这对您有所帮助。

function createNewSmiley()
{
var newSmiley = document.createElement("img");
newSmiley.src = "http://cfile24.uf.tistory.com/image/163BB51F4BF9DF7431AB10";
newSmiley.alt = "Smiley Image";
newSmiley.style.width = "64px";
newSmiley.style.height = "64px";

return newSmiley;
}


function positionNewSmiley(parent, smiley, x, y)
{
smiley.style.top = y + "px";
smiley.style.left = x + "px";

parent.appendChild(smiley);
}

function main(smileyCount)
{
var myDiv = document.getElementById("myDiv");

for (var i = 0; i < smileyCount;i++)
{
var x = Math.floor((Math.random() * 500));
var y = Math.floor((Math.random() * 500));
var smiley = createNewSmiley();
smiley.onclick = smileyClicked;
positionNewSmiley(myDiv, smiley, x, y);
}
}

function smileyClicked(ev) {
alert("OK");
}

main(6);
<div id='myDiv'></div>

关于javascript - 附加到 img 时不会在 javascript 中触发 OnClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40180426/

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