我有一个脚本,当我上传照片时会在我的网站上添加一个div。现在,当添加此div时,我不想调用函数。我试过这个,但它不起作用。
var divImg = document.createElement("div");
divImg.id = "divimg";
newImg.setAttribute('onload','urediBtnx(this)');
divImg.innerHTML = '<a href=""><img src="/imago/images/btnx.gif" class="btnx"></a>';
应调用此函数:
function urediBtnx(dv){
alert("blabla");
}
问题是,如果我这样做,那么函数会被调用,但我需要得到div,而不是img。
divImg.innerHTML = '<a href=""><img onload="urediBtnx(this)" src="/imago/images/btnx.gif" class="btnx"></a>';
答案 0 :(得分:1)
好吧,<div>
没有onload
,因为它们没有加载。加载文档,加载图像,加载iframe - div只是。为了达到你想要的效果,你应该立即从调用urediBtnx()
的相同代码中调用appendChild()
,将div插入到文档中,因为在那时,div是“加载”的,因为它是要拿到。 (如果稍后更改div的内容,则可能需要从该代码再次调用该函数...)
答案 1 :(得分:0)
Div没有onload事件。它们仅适用于<body>
,<frame>
,<frameset>
,<iframe>
,<img>
,<link>
或<script>
。
随后在添加到DOM之后调用该函数是一种方式。
parent.appendChild(divImg);
urediBtnx();
如果你是jQuery库,可以获得回调的可能性
$("#parent").append($(divImg), function() {
urediBtnx();
});
答案 2 :(得分:0)
您可以将onload事件处理程序附加到body,img,script或iframe等元素,但不能附加到div。
在您的场景中,div是图像的祖父。你可以在图像上保持onload,然后使用this.parentNode.parentNode来到达div。