向我的网站添加div时调用函数

时间:2012-04-23 01:13:10

标签: javascript jquery javascript-events

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

3 个答案:

答案 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。