我有一个脚本,当我上传一张照片时,它会在我的站点中添加一个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条答案
按热度按时间vc6uscn91#
<div>
没有onload
,因为它们没有被加载。文档被加载,图像被加载,iframe被加载-div就是这样。为了达到你想要的效果,你应该直接从你调用appendChild()
的代码中调用urediBtnx()
来将div插入到文档中,因为在那个时候,这个div已经“加载”到了它将要达到的程度。(如果您以后更改了div的内容,可能需要从该代码中再次调用该函数...)fjaof16o2#
可以将onload事件处理程序附加到body、img、script或iframe等元素,但不能附加到div。
在您的场景中,div是图像的祖父。您可以将onload保留在图像上,然后使用this.parentNode.parentNode访问div。
von4xj4u3#
Div没有加载事件。它们仅适用于
<body>
、<frame>
、<frameset>
、<iframe>
、<img>
、<link>
或<script>
。在将函数添加到DOM之后随后调用它是一种方法。
如果您是jQuery库,则可以获得回调的可能性