Skip to content

Instantly share code, notes, and snippets.

@ksykulev
Forked from paulirish/README.md
Created August 25, 2011 05:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ksykulev/1170048 to your computer and use it in GitHub Desktop.
Save ksykulev/1170048 to your computer and use it in GitHub Desktop.
imagesLoaded() jquery plugin - adding unbind for load event
// $('img.photo',this).imagesLoaded(myFunction)
// execute a callback when all images have loaded.
// needed because .load() doesn't work on cached images
// mit license. paul irish. 2010.
// webkit fix from Oren Solomianik. thx!
// callback function is passed the last image to load
// as an argument, and the collection as `this`
$.fn.imagesLoaded = function(callback){
var elems = this.filter('img'),
len = elems.length,
blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
elems.bind('load.imagesLoaded',function(e){
if (--numOfElems <= 0 && e.target.src !== blank){ callback.call(elems,e.target); $(elems).unbind('load.imagesLoaded'); }
}).each(function(index, e){
// cached images don't fire load sometimes, so we reset src.
if (e.complete || e.complete === undefined){
var src = e.src;
// webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
// data uri bypasses webkit log warning (thx doug jones)
e.src = blank;
e.src = src;
}
});
return this;
};
@ksykulev
Copy link
Author

This version allows imagesLoaded to be called multiple times.

@adamjakab
Copy link

muche better - but u need to correct or len or numOfElems

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment