2012-09-17 8 views
5

Ich benutze das Unendlich-Scroll-Plugin (infinite-scroll) mit jQuery Isotop und fragte mich, ob es möglich ist, den Pfad mit benutzerdefinierten Abfrageparameter zu ändern, während Benutzer die Seite scrollt, um weitere Elemente anzuzeigen.Infinite Scroll-Plugin ändern Sie den Pfad mit benutzerdefinierten Abfrage

Gibt es eine Möglichkeit, auf den Pfad zuzugreifen und einen der Abfrageparameter zu ändern. Es ist das erste Mal in Ordnung, den ersten Satz von Elementen und danach die nächsten Seiten, 1,2 3 ok, aber mit den gleichen Abfrage-Parameter, die ich zum ersten Mal nur die Seitenzahl aktualisiert.

Ich möchte einen der Parameter ändern, wenn Seite 3 oder 4 mit so etwas wie dies trifft:

var customPath = path + "?type=items&category=clothes&pageNumber="; 

Bin näherte ich diese in die falsche Richtung?

Hier ist mein Code:

$container.infinitescroll({ 
    navSelector: '#page_nav', // selector for the paged navigation 
    nextSelector: '#page_nav a', // selector for the NEXT link (to page 2) 
    itemSelector: '.element', // selector for all items you'll retrieve 
    loading: { 
     finishedMsg: 'No more categories to load.', 
     msgText: "<em>Loading the next set of categories...</em>", 
     img: 'http://i.imgur.com/qkKy8.gif' 
    }, 
    pathParse: function (path, nextPage) { 
     var customPath = path + "?type=items&category=all&pageNumber="; 
     path = [customPath, '#contaner']; 
     return path; 
    } 
}, 
// call Isotope as a callback 
function (newElements) { 
    $container.isotope('appended', $(newElements)); 
}); 
+0

Ihr customPath ist eine ungültige js-Syntax. Sie können keine "Schuhe" in doppelten Anführungszeichen haben. Entfernen Sie einfach die Anführungszeichen und es sollte in Ordnung sein. ('& category = shoes &') ich glaube nicht, dass du mir genug informationen gegeben hast, um es zu verstehen. Wollen Sie sagen, dass Sie die Kategorie von "Kleidung" in "Schuhe" ändern möchten, wenn der Nutzer Seite 3 erreicht? Heißt das, dass du auf Seite 3 von Kleidung bleiben willst, im Gegensatz zu Seite 3 von Schuhen? Was genau willst du damit machen? – Ringo

+0

Entschuldigung, das war ein Fehler von meiner Seite Ich entfernte die Zitate.Initial wenn Benutzer die Seite sieht gibt es eine 30 Elemente auf der Seite aus verschiedenen Kategorien. Jetzt gibt es eine Schaltfläche auf der Seite und wenn der Benutzer darauf klickt, werden die Elemente gefiltert und nur die der Kategorie Kleidung angezeigt. Jetzt, wenn der Benutzer nach unten scrollt, muss ich die nächsten 30 Gegenstände holen, aber ich muss die Pfadabfrage ändern, so dass ich nur Gegenstände der Kategorie Kleidung bekomme, anstatt alle Gegenstände zu bekommen. –

+1

ich weiß nicht genug über infinite-scroll zu beantworten, aber hier ist eine Frage mit einer Antwort, die helfen könnte. http: // Stapelüberlauf.com/questions/11397648/infinite-scroll-pathparse-for-reverse-wordpress-kommentare – Ringo

Antwort

7

Ok, damit ich ein wenig Hack zu tun hatte, aber ich habe es für meine Bedürfnisse dank Rich-Arbeit für mich auf die damit verbundene Frage zeigt.

Ich habe einige zusätzliche Eigenschaften zum jquery.infinitescroll.js Prototyp hier:

//line 67 
$.infinitescroll.prototype = { 
     //My custom parameters 
     pageType: "&type=items", 
     categoryParam: "&category=shoes", 
     /* 
      ---------------------------- 
      Private methods 
      ---------------------------- 
      */ 

Dann rief innerhalb der Funktion:

retrieve: function infscr_retrieve(pageNum) {} 

eine Variable ist:

desturl = path.join(opts.state.currPage) 

Geändert zu

desturl = path.join(opts.state.currPage + $.infinitescroll.prototype.pageType + $.infinitescroll.prototype.categoryParam); 

Dadurch werden Ihre zusätzlichen Abfrageparameter am Ende des Desturl hinzugefügt.

Dann von Ihnen Seite, wo Sie Sie haben JavaScript Sie etwas tun können:

$('#filters a').click(function() { 
    $.infinitescroll.prototype.pageType = "&type=products" ;     
    $.infinitescroll.prototype.pageType = "&category=clothes";       
    return false; 
}); 

Dies wird die Abfrageparameter der nächsten Seite mit Ihnen benutzerdefinierte Abfragen aktualisieren.

Hoffe, das wird jemandem helfen.