Einfache Paginierung in javascript
Ich versuche zu machen Paginierung für meine Website. (http://anuntorhei.md)
CODE:
var someVar = 50;
function someStupidFunction() {
if (objJson.length > 50) {
document.getElementById("nextPage").style.visibility = "visible";
}
if (someVar <= 50) {
document.getElementById("prevPage").style.visibility ="hidden";
} else {
document.getElementById("prevPage").style.visibility = "visible";
}
}
function nextPage() {
document.getElementById("listingTable").innerHTML = "";
if (someVar < objJson.length) {
document.getElementById("nextPage").style.visibility = "visible";
} else {
document.getElementById("nextPage").style.visibility = "hidden";
}
for (var i = someVar - 50; i < someVar; i++) {
document.getElementById("listingTable").innerHTML += objJson[i].adName + "<br>";
}
someVar += 50;
document.getElementById("prevPage").style.visibility = "visible";
}
function prevPage() {
document.getElementById("listingTable").innerHTML = "";
if (someVar > 50) {
document.getElementById("prevPage").style.visibility = "visible";
} else {
document.getElementById("prevPage").style.visibility = "hidden";
}
for (var i = someVar - 50; i < someVar; i++) {
document.getElementById("listingTable").innerHTML += objJson[i].adName + "<br>";
}
someVar -= 50;
document.getElementById("nextPage").style.visibility = "visible";
}
Aber ich kann nicht verstehen, wie man zu "verstecken" nextPage
- Taste, wenn someVar
größer ist als objJson.length
.
Und wenn ich Erreiche das "Ende", nextPage
button verschwindet nach als objJson
ist kleiner als someVar
. Was ist falsch in diesem code?
Wie kann ich es ändern, um es perfekt? Sorry für mein schlechtes Englisch, kann nicht erklären, alles was ich brauche, hoffe, Sie verstehen, was ich brauche!
- In dem link sehe ich keine Seitenzählung. Sowieso, Sie können reinigen Sie Ihren code, wenn Sie verwenden, ternärer operator: jsfiddle.net/rwntwwob
- Weil ich testen Paginierung der ersten (oder andere Sachen), und wenn ich mag, wie dieses Zeug funktioniert, ich habe es auf Haupt-Website!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kläre alle Fragen, die Sie haben... aber hier ist eine verbesserte Muster, das Sie Folgen sollten, um code-Duplizierung zu reduzieren.
Wie nebenbei, obwohl, sollten Sie überlegen, nicht tun Paginierung auf der client-Seite. Wenn man da einen riesigen Datensatz, würde es bedeuten, Sie müssen downloaden Sie alle Daten, bevor die Seite geladen wird. Besser zu implementieren server-Seite Paginierung statt.
Fiddle: http://jsfiddle.net/Lzp0dw83/
HTML
Javascript gesetzt (überall):
UPDATE 2014/08/27
Es ist ein Fehler oben, wo die for-Schleife Fehler aus, wenn eine bestimmte Seite (die Letzte Seite in der Regel) nicht enthalten
records_per_page
Anzahl von Datensätzen, als es versucht, auf einen nicht existierenden index.Die Lösung ist einfach genug, indem eine zusätzliche überprüfung der Bedingung in der for-Schleife zu berücksichtigen, für die Größe der
objJson
:Aktualisiert fiddle: http://jsfiddle.net/Lzp0dw83/1/
ich gehe davon aus, dass Sie anzeigen 10 Daten in jede Seite
HTML:-
JS:-
CSS:-
Einer einfachen client-Seite Paginierung Beispiel, in dem Daten abgerufen werden nur einmal beim laden der Seite.
JS:
CSS:
HTML:
Erstellte ich eine Klasse Struktur für die Sammlungen im Allgemeinen, die würde, die diese Anforderung erfüllen. und es sieht wie folgt aus:
...und im Grunde, was Sie tun würde, ist eine Sammlung von arrays gleich welcher Länge für die Seiten geschoben, in das class-Objekt, und verwenden Sie dann die next() und previous() Funktionen, um zu zeigen, was 'Seite' (index), die Sie anzeigen möchten. Würde im wesentlichen so Aussehen: