2012-09-17 8 views
5

Sto usando il plugin scroll infinito (infinite-scroll) con isotopo jQuery e mi chiedevo se è possibile modificare il percorso con parametri di query personalizzati mentre l'utente scorre la pagina verso il basso per visualizzare più elementi.Infinite scroll plugin modifica il percorso con query personalizzata

C'è un modo per accedere al percorso e modificare uno dei parametri di query. Sta per tornare per la prima volta ok al primo set di elementi e dopo di che ha colpito le pagine successive, 1,2 3 ok ma usando gli stessi parametri di query che ho usato per la prima volta solo aggiornando il numero di pagina.

vorrei modificare uno dei parametri quando colpisce pagina 3 o 4 con qualcosa di simile:

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

Perchè sono avvicinando nel modo sbagliato?

Ecco il mio codice:

$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

il tuo CustomPath è una sintassi js illegale. non puoi avere "scarpe" tra virgolette del genere. basta rimuovere le doppie virgolette e dovrebbe andare bene. ('& category = shoes &') non penso che tu abbia dato abbastanza informazioni per farmi capire. stai dicendo che vuoi cambiare la categoria da "vestiti" a "scarpe" quando l'utente raggiunge la pagina 3? Significa che vuoi rimanere sulla pagina 3 dell'abbigliamento rispetto alla pagina 3 delle scarpe? cosa stai cercando di fare esattamente? – Ringo

+0

Mi dispiace che sia stato un errore da parte mia ho rimosso le virgolette. Inizialmente quando l'utente vede la pagina ci sono 30 elementi sulla pagina da diverse categorie. Ora c'è un pulsante sulla pagina e quando l'utente fa clic su di esso gli elementi vengono filtrati e vengono mostrati solo quelli degli abiti delle categorie. Ora quando l'utente scorre verso il basso ho bisogno di ottenere i prossimi 30 articoli, ma ho bisogno di modificare la query del percorso in modo da ottenere solo gli elementi di vestiti di categoria invece di ottenere tutti gli elementi. –

+1

Non so abbastanza di scroll infiniti per rispondere, ma ecco una domanda con una risposta che potrebbe aiutare. http: // StackOverflow.it/questions/11397648/infinite-scroll-pathparse-for-reverse-wordpress-comments – Ringo

risposta

7

Ok, quindi ho dovuto fare un piccolo hack, ma ho capito di lavoro per le mie esigenze, grazie a Rich per me indicando la relativa domanda.

ho aggiunto alcune proprietà aggiuntive al prototipo jquery.infinitescroll.js qui:

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

Poi all'interno della funzione chiamata:

retrieve: function infscr_retrieve(pageNum) {} 

c'è una variabile:

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

modificato in

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

Ciò aggiungerà i parametri di query aggiuntivi alla fine del desturl.

Poi da voi pagina dove si javascript si può fare qualcosa di simile:

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

Questo aggiornerà i parametri di query della pagina successiva con voi query personalizzate.

Spero che questo aiuti qualcuno.