站内搜索
分类列表
本类阅读排行
本类推荐文章
- 把网页中的电话号码生成图片的ASP...
- 为动态生成html元素增加事件处理
- 如何将XHTML+CSS页面转换为打印机...
- 内容拷贝增加版权信息的JavaScrip...
- 用overflow代替left截取指定长度字...
- 网站论坛注册中常用的一种倒记时特...
- 网站常用的一种JS的图片幻灯片特效...
- revealTrans滤镜制作超弦图片的播...
- JS函数实现鼠标指向后带图片的提示...
- 两行代码在任意页面实现谷歌卫星图
- 网页制作中分类的选项卡特效代码
- 距离北京2008年奥运会开幕倒记时特...
- 网页的新颖效果:斜着滚动的marquee
- Javascript中判断润年简单的代码实...
- 巧妙去除网页中文字水印的两种方法
广告
为动态生成html元素增加事件处理
作者: 来源: 点击: 日期:2007-11-23 11:07:38
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");
}
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");
}
为动态生成html元素增加事件处理 评论
