所以我有一个页面,动态加载图像在用户请求,基本上随机图像会弹出时,他们点击一个按钮。我想找到一种方法来隐藏图像,直到它完成加载,然后再次显示。我试着用jQuery的$(window).load()函数来做这件事,它对第一个图像完美地工作,但是当我加载下一个图像时事件不会再次触发。有没有另外一种方法来做到这一点,或重置load()事件?谢谢。jQuery等待动态图像加载
注意:有问题的图片是相当大的gif动画,但它们非常,有些只需要一些时间加载,有些可能需要20秒。
所以我有一个页面,动态加载图像在用户请求,基本上随机图像会弹出时,他们点击一个按钮。我想找到一种方法来隐藏图像,直到它完成加载,然后再次显示。我试着用jQuery的$(window).load()函数来做这件事,它对第一个图像完美地工作,但是当我加载下一个图像时事件不会再次触发。有没有另外一种方法来做到这一点,或重置load()事件?谢谢。jQuery等待动态图像加载
注意:有问题的图片是相当大的gif动画,但它们非常,有些只需要一些时间加载,有些可能需要20秒。
隐藏它使用CSS和倾听每个图像的加载事件:
<img style="display: none" class="loadedImage" src="..." />
$(function(){
$(".loadedImage").live("load", function(){
$(this).show();
});
});
这是我从'.live()'文档的理解,'.live()'不适用于加载事件。它只适用于泡泡文档的某些类型的事件。请参阅此处的“注意事项”部分:http://api.jquery.com/live/。 – jfriend00
谢谢。我不知道。我原本想编写简单的“.load()”,但由于我不太确定_dynamically loaded images_意味着什么(不管标记是否已经存在,只有src正在改变或者是什么),我插入了'.live ()' –
其所谓的延迟加载,并有它的特殊JQuery plugin。
我有一个jQuery plugin called waitForImages这将有助于这一点。
$('#newly-loaded-element').hide().waitForImages(function() {
$(this).show();
});
这是可能的,但你需要告诉我们你正在使用的代码,所以我们可以建议。 – jfriend00