我目前正在编写一个jQuery插件,其中克隆图像然后插入DOM。我面临的问题是,即使图像被克隆(因此已经缓存,因为我在window.load
上执行此代码),在附加后宽度()和高度()需要一段时间才能变得可用他们到DOM。脚本太长了,无法在此发布,但总的来说我这样做:
var clone = $(el).clone(); //el is some container containing one or more images
$(someElementInDOM).append(clone);
clone.find("img").each(function() {
console.log("height: "+$(this).height()+", width: "+$(this).width());
});
这给我0宽度和高度。如果我在执行console.log之前等了一会儿就可以使用宽度和高度了。我知道图像的load
事件,但我不能使用它,因为我严重依赖于我的代码同步执行(因为元素插入DOM的顺序至关重要)。由于似乎不可能同步执行load
事件,我想知道该怎么做。我甚至不确定为什么会出现这种情况,在我看来,下载的图像应该在将其附加到DOM之后立即附加宽度和高度?
谢谢!