2011-10-07 3 views
6

Attualmente sto tirando i capelli cercando di ottenere iscroll 4 lavorando con jQuery Mobile.utilizzando iscroll con jquery mobile

Funziona tutto bene, disabilito la navigazione di default di JQM ajax, ma vorrei mantenere questo.

Il mio problema è che non riesco a capire come chiamare/iscroll correttamente, in modo che funzioni con le pagine che ne hanno bisogno. Ho provato pageinit() e pagecreate() senza alcun risultato.

Qualsiasi suggerimento molto apprezzato.

A.

risposta

8

inizializzo/aggiornare le istanze iScroll sulle pageshow e orientationchange eventi. Ho impostato una classe sui div di data-role="content" che voglio essere scorrevole (in questo caso ho usato la classe .content).

var myScroll = []; 
$(document).delegate('[data-role="page"]', 'pageshow', function() { 
    if ($.mobile.activePage.find('.content').length > 0) { 
     if (this.id in myScroll) { 
      myScroll[this.id].refresh(); 
     } else { 
      myScroll[this.id] = new iScroll($.mobile.activePage.find('.content')[0].id, { 
       hScroll  : false, 
       vScroll  : true, 
       hScrollbar  : false, 
       vScrollbar  : true, 
       fixedScrollbar : true, 
       fadeScrollbar : false, 
       hideScrollbar : false, 
       bounce   : true, 
       momentum  : true, 
       lockDirection : true 
      }); 
     } 
    } 
}); 

$(window).bind('orientationchange', function() { 
    if ($.mobile.activePage[0].id in myScroll) { 
     myScroll[$.mobile.activePage[0].id].refresh(); 
    } 
}); 
+0

si fa a caricare iscroll JS prima ? – Adi

+0

No, è l'ultimo script che carico. Se hai difficoltà a inizializzare le istanze di iScroll, assicurati di seguire l'esempio sul sito iScroll. iScoll scorre solo il figlio immediato dell'elemento su cui viene chiamato. – Jasper

+0

posso farlo funzionare, non solo con navigazione ajax JQM. Ad esempio, se arrivo alla pagina, l'iscritto non funziona. se aggiorno quella pagina funziona bene (presumibilmente perché legge di nuovo tutto il js) attualmente iscroll js è in testa di html ancora e non in nessun evento di pagina in js – Adi