jQuery在绑定.load()事件之前检查图像是否已经加载

Mar*_*ijn 5 jquery events load image filter

我有一个用于jQuery的coverflow插件,它应该适应一系列图像中最高的图像.

目前,它.load()在每个图像上使用绑定,并在计数器指示已加载所有图像后调整插件.我被告知这在所有浏览器上都不可靠.

通常,大多数这些图像已经加载到浏览器缓存中,因此.load()绑定的触发次数远远超过必要.

为了减少开销,我希望.load()通过仅对.load()尚未加载的图像使用绑定来尽可能地减少绑定的数量.

如何区分已加载的图像尚未加载的图像?

Guf*_*ffa 8

complete在绑定事件之前检查图像的属性.例:

var img = $('.someImage');
if (img.prop('complete')) {
  // already loaded
} else {
  img.load(function(){
    // now it has loaded
  });
}
Run Code Online (Sandbox Code Playgroud)

  • 我最终得到了类似`$('img')的东西.过滤器(function(){return!$(this).prop('complete');}).load(...);`,这似乎工作完美.节省大约三分之一的重复计算. (2认同)