2016-09-29 4 views
0

Ich fand ein Skript, das würde faul laden X Anzahl der Artikel, aber was ist, wenn die Gesamtzahl der Artikel ändert sich jeden Tag? Gibt es eine Möglichkeit, die Artikel den Gesamtbetrag in einem Set berechnen zu lassen (wenn das sinnvoll ist?). Also statt 999 oder eine bestimmte Zahl in der Items-Variable.Laden Sie unendlich viele Artikel (Lazy Load)

Das Problem ist, ich werde nie erfahren, wie viele Artikel auf der Website hinzugefügt werden.

Hier ist meine JSFiddle https://jsfiddle.net/robertallenbaker/maezdhe2/4/

$(document).ready(function() { 
$('.sidebar-article-entry').hide(); 
$('.sidebar-article-entry:lt(5)').show(); 
var items = 999; 
var shown = 5; 
$('.more-articles-link').click(function() { 
    shown = $('.sidebar-article-entry:visible').size()+5; 
    if(shown< items) { 
     $('.sidebar-article-entry:lt('+shown+')').slideDown(); 
    } 
    else { 
     $('.sidebar-article-entry:lt('+items+')').show(); 
     $('.more-articles-link').hide(); 
    } 
}); 
}); 

Antwort

0

Sie slice() dafür verwenden können. Es filtert Elemente basierend auf Start- und Zielindizes

Dann einfach shown zu length der Elemente Sammlung

var $entries = $('.sidebar-article-entry'), 
     shown = 5; 

    $entries.filter(':gt(4)').hide();  

    $('.more-articles-link').click(function() { 
    $entries.slice(shown, shown + 5).show(); 
    shown += 5; 
    if (shown >= $entries.length) { 
     $(this).hide() 
    } 
    }); 

DEMO

+0

ehrfürchtig vergleichen! Ich danke dir sehr! – robertallenbaker