检测多个图像加载事件

我想知道是否有办法检测多个图像的加载事件(特别是,当给定集合中的最后一个图像完成加载时,应该执行一个函数)。

例如,用户点击链接并且lighbox出现10个图像。 加载完所有图像后,加载条应消失。

jQuery(".lightbox-image").each(function(){ var image = jQuery(this); jQuery('').attr('src', image.attr('src')).load(function(){ hideLoadingBar(); }); }); 

不幸的是,这触发了hideLoadingBar(); 太早(在一张图片完成加载后)。

PS
我还需要在缓存图像之后才能使用我的函数: jQuery('#img1, #img2').load(); 不行。

看看这个jQuery imagesLoaded插件,它应该适合你的需求我想。

好吧,似乎没有人有更好的想法,所以下面是我的解决方案/解决方法。 这个问题的另一个答案可能是您想要使用的,因为它是专门为此创建的库,但这是我将要使用的解决方案,因为它更简单:

 var allImages = jQuery(".lightbox-image").length; var counter = 0; jQuery(".lightbox-image").each(function(){ var image = jQuery(this).find('.myimage'); jQuery('').attr('src', image.attr('src')).load(function(){ counter++; if(counter >= allImages){ hideLoadingBar(); } }); }); 

适用于缓存图像而非缓存图像。