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

bbmckpt7  于 2022-11-29  发布在  jQuery
关注(0)|答案(3)|浏览(123)

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

vc6uscn91#

<div>没有onload,因为它们没有被加载。文档被加载,图像被加载,iframe被加载-div就是这样。为了达到你想要的效果,你应该直接从你调用appendChild()的代码中调用urediBtnx()来将div插入到文档中,因为在那个时候,这个div已经“加载”到了它将要达到的程度。(如果您以后更改了div的内容,可能需要从该代码中再次调用该函数...)

fjaof16o

fjaof16o2#

可以将onload事件处理程序附加到body、img、script或iframe等元素,但不能附加到div。
在您的场景中,div是图像的祖父。您可以将onload保留在图像上,然后使用this.parentNode.parentNode访问div。

von4xj4u

von4xj4u3#

Div没有加载事件。它们仅适用于<body><frame><frameset><iframe><img><link><script>
在将函数添加到DOM之后随后调用它是一种方法。

parent.appendChild(divImg);
urediBtnx();

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

$("#parent").append($(divImg), function() {
    urediBtnx();
});

相关问题