(function($,window, document){ $.fn.infiniteLoad=function(options){ var settings=$.extend({ navSelector: '', contentSelector: '', nextSelector: '', itemSelector: '', paginationType: 'infinite', loadingImage:'', loadingButtonLabel: 'Load More', loadingButtonClass: '', loadingFinishedText: 'No More Posts Available', }, options); var loading=false; var loaded=false; var url=false; var infiniteHtml=''; var moreHtml=''; var _init=function(){ if($(settings.navSelector).length&&$(settings.contentSelector).length&&$(settings.nextSelector).length&&$(settings.itemSelector).length){ url=$(settings.nextSelector).attr('href'); _setup_element(); }else{ return false; }} var _setup_element=function(){ $(settings.navSelector).hide(); infiniteHtml=((settings.loadingImage!='')?'':''); moreHtml=''; switch(settings.paginationType){ case 'infinite': $(settings.navSelector).before('
'+infiniteHtml+'
'); break; case 'more': $(settings.navSelector).before('
'+moreHtml+'
'); break; default: $(settings.navSelector).before('
Loading.....
'); }} var _load=function(){ if(!url) return false; loading=true; var lastElem=$(settings.contentSelector).find(settings.itemSelector).last(); $(document).trigger('pix_infinite_load_start'); $.ajax({ url:url, dataType:'html', success:function (response){ loading=false; if(settings.paginationType=='infinite') $('.pix-loader').hide(); var obj=$(response), elem=obj.find(settings.itemSelector), next=obj.find(settings.nextSelector); lastElem.after(elem); $(document).trigger('pix_infinite_load_success'); if(next.length){ url=next.attr('href'); }else{ loaded=true; $(document).trigger('pix_infinite_load_complete'); }} }); }; $(window).on('scroll',function(){ if(! loading&&! loaded&&settings.paginationType=='infinite'&&$(window).scrollTop() >=$(settings.itemSelector).last().offset().top + $(settings.itemSelector).last().outerHeight() - window.innerHeight){ _load(); }}); $(document).on('click','.pix-load-more',function(){ if(! loading&&! loaded&&settings.paginationType=='more'){ $('.pix-wrapper').html(infiniteHtml); _load(); }}); $(document).on('pix_infinite_load_start',function(){ if(settings.paginationType=='infinite') $('.pix-wrapper').show(); }); $(document).on('pix_infinite_load_success',function(){ if(settings.paginationType=='infinite') $('.pix-wrapper').hide(); else if(settings.paginationType=='more') $('.pix-wrapper').html(moreHtml); }); $(document).on('pix_infinite_load_complete',function(){ $('.pix-wrapper').html(settings.loadingFinishedText).show(); }); _init(); };}(jQuery,window, document));