/*----------------------------- img_load -----------------------------*/ (function($){ var defaults = { flagErrorAddCntImg:true, //callback funcImgLoadErrorCallback:function(lenImg, cntImg, eleImgLoaded, eleImgError){}, funcImgLoadFinishCallback:function(lenImg, eleImgLoaded){} }; $.fn.imgLoad = function(options){ var configs = {}, el = this, lenEl = el.length, funcInit = function(){ configs = $.extend({}, defaults, options); funcCustomEvents(); el.funcLoad(); }, funcCustomEvents = function(){ el.on({ 'imgLoad.load':function(e, args){ configs = $.extend({}, configs, args); el.funcLoad(); } }); }; if(lenEl === 0)return this; if(lenEl > 1){ el.each(function(){$(this).imgLoad(options)}); return this; } el.funcLoad = function(){ var cntImg = 0, eleChildImg = el.find('img'), eleImgLoaded = [], lenChildImg = $(eleChildImg).length; if(lenChildImg === 0){ configs.funcImgLoadFinishCallback(lenChildImg, eleImgLoaded); return true; } $(eleChildImg).each(function(){ var eleImg = $(''); eleImg.on({ 'error':function(){ configs.funcImgLoadErrorCallback(lenChildImg, cntImg, eleImgLoaded, $(this)); if(configs.flagErrorAddCntImg){ if(lenChildImg === ++cntImg) configs.funcImgLoadFinishCallback(lenChildImg, eleImgLoaded); } }, 'load':function(){ eleImgLoaded.push($(this)); if(lenChildImg === ++cntImg) configs.funcImgLoadFinishCallback(lenChildImg, eleImgLoaded); } }); eleImg.attr('src', $(this).attr('src')); }); }; funcInit(); }; })(jQuery); /*----------------------------- /img_load -----------------------------*/