【发布时间】:2016-10-21 23:49:56
【问题描述】:
我是 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 - 它会。
我做错了什么?
【问题讨论】:
-
positionNewSmiley()创建一个新对象(没有点击处理程序),并且仅将那个对象添加到文档中。 -
我怎么会错过这个?谢谢。 :)
标签: javascript html onclick