1/** 2 * Plugin which is applied on a list of img objects and calls 3 * the specified callback function, only when all of them are loaded (or errored). 4 * @author: H. Yankov (hristo.yankov at gmail dot com) 5 * @version: 1.0.0 (Feb/22/2010) 6 * http://yankov.us 7 */ 8 9(function($){ 10 11 $.fn.batchImageLoad = function(options){ 12 var images = $(this); 13 var originalTotalImagesCount = images.length; 14 var totalImagesCount = originalTotalImagesCount; 15 var elementsLoaded = 0; 16 17 // Init 18 $.fn.batchImageLoad.defaults = { 19 loadingCompleteCallback: null, 20 imageLoadedCallback: null 21 } 22 var opts = $.extend({}, $.fn.batchImageLoad.defaults, options); 23 24 // Start 25 images.each(function(){ 26 // The image has already been loaded (cached) 27 if($(this)[0].complete){ 28 totalImagesCount--; 29 if(opts.imageLoadedCallback) 30 opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount); 31 // The image is loading, so attach the listener 32 } else { 33 $(this).load(function(){ 34 elementsLoaded++; 35 36 if(opts.imageLoadedCallback) 37 opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount); 38 39 // An image has been loaded 40 if(elementsLoaded >= totalImagesCount) 41 if(opts.loadingCompleteCallback) 42 opts.loadingCompleteCallback(); 43 }); 44 $(this).error(function(){ 45 elementsLoaded++; 46 47 if(opts.imageLoadedCallback) 48 opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount); 49 50 // The image has errored 51 if(elementsLoaded >= totalImagesCount) 52 if(opts.loadingCompleteCallback) 53 opts.loadingCompleteCallback(); 54 }); 55 } 56 }); 57 58 // There are no unloaded images 59 if(totalImagesCount <= 0) 60 if(opts.loadingCompleteCallback) 61 opts.loadingCompleteCallback(); 62 }; 63})(jQuery); 64
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.