为动态生成的html元素增加事件处理

function klik(){
alert("ppp");
}

function addNewImg(newImageId){
newImg = document.createelement(’img’);
newImg.id = "image"+newImageId;
newImg = document.getElementById("divimage1").appendChild(newImg);
newImg.onclick=klik
}

it works. The new image is created and after clicking on it "ppp" is alerted.

but when I use this:

function klik(ff){
alert(ff);
}

function addNewImg(newImageId){
newImg = document.createelement(’img’);
newImg.id = "image"+newImageId;
newImg = document.getElementById("divimage1").appendChild(newImg);
newImg.onclick=klik("ppp");
}

"ppp" is alerted in the moment of executing the statement newImg.onclick=klik("ppp"); and when clicking on the generated image nothing happens, even Javascript Console of Firefox stays blind.



function addNewImg(newImageId){
newImg = document.createelement(’img’);
newImg.id = "image"+newImageId;
newImg = document.getElementById("divimage1").appendChild(newImg);
var onC=’ppEdit("image’+newImageId+’","image")’;
document.getElementById("image"+newImageId).onclick=new Function(onC);
}

it works

maybe an object detection be great to add too
why?
So browsers that understand document.getElementById,
document. createelement execute the code.


function addNewImg(newImageId){
//object detection check
if (!document.getElementById &&!document.createelement){return;}
newImg = document.createelement(’img’);
newImg.id = "image"+newImageId;
newImg = document.getElementById("divimage1").appendChild(newImg);
var onC=’ppEdit("image’+newImageId+’","image")’;
document.getElementById("image"+newImageId).onclick=new Function(onC);
}

alternative solution:
if (!document.getElementById) {return;}
document.getElementById("image"+newImageId).onclick=function(){
ppEdit(this.id, "image");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值