您现在的位置: 星云网络 >> 文章中心 >> 基础学习 >> 编程学习 >> 文章正文
文章搜索:

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

作者:佚名    文章来源:网络转载    点击数:    更新时间:2007-12-2
  Adding onClick property to dynamicly genertated html element


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");
}
加入网摘:365Key  | 新浪ViVi  | 和讯网摘  | 天极网摘  | POCO网摘 
文章录入:文章录入:2006xynt    责任编辑:2006xynt 
友情链接说明:  我们只接受页面健康的同类型网站之类的方字链接形式.  点此申请链接  联系QQ:40562876
点击申请
点击申请点击申请点击申请点击申请点击申请点击申请点击申请点击申请