1

我有一个脚本,可以在我上传照片时向我的网站添加一个 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>';
4

3 回答 3

1

好吧,<div>'s 没有,onload因为它们没有加载。加载了文档,加载了图像,加载了 iframe - 只是 div。为了实现您想要的,您应该urediBtnx()立即从您调用的相同代码中调用appendChild()以将 div 插入到文档中,因为此时,div 就像它将要得到的那样“加载”。(如果您稍后更改 div 的内容,您可能需要从该代码再次调用该函数...)

于 2012-04-23T01:17:49.590 回答
0

Div 没有 onload 事件。它们仅适用于<body>, <frame>, <frameset>, <iframe>, <img>,<link><script>

随后在添加到 DOM 后调用该函数是一种方法。

parent.appendChild(divImg);
urediBtnx();

如果您是 jQuery 库,则可以获得回调的可能性

$("#parent").append($(divImg), function() {
    urediBtnx();
});
于 2012-04-23T01:17:51.040 回答
0

您可以将 onload 事件处理程序附加到 body、img、script 或 iframe 等元素,但不能附加到 div。

在您的场景中, div 是您的图像的祖父母。您可以将 onload 保留在图像上,然后使用 this.parentNode.parentNode 到达 div。

于 2012-04-23T01:19:04.367 回答