2011-10-07 24 views
6

Actualmente estoy tirando de mi cabello tratando de obtener iscroll 4 trabajando con jQuery Mobile.usando iscroll con jquery mobile

Todo funciona bien. Deshabilito la navegación por defecto de JQM ajax, pero me gustaría conservar esto.

Mi problema es que no puedo encontrar la manera de llamar/enlazar iscroll para que funcione con las páginas que los necesitan. He intentado pageinit() y pagecreate() en vano.

Cualquier apuntador muy apreciado.

A.

Respuesta

8

inicializo/refresh los casos en los iScroll pageshow y orientationchange eventos. Establecí una clase en data-role="content" divs que quiero que se pueda desplazar (en este caso utilicé la clase .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

Cómo se carga iscroll js antes de ? – Adi

+0

No, es el último script que cargué. Si tiene dificultades para inicializar las instancias de iScroll, asegúrese de estar siguiendo el ejemplo en el sitio de iScroll. iScoll solo desplaza al elemento secundario inmediato del elemento al que lo llamas. – Jasper

+0

puedo hacerlo funcionar, pero no con la navegación JQM ajax. es decir, si llego a la página, iscroll no está funcionando. si actualizo esa página funciona bien (probablemente porque lee todos los js de nuevo) en este momento iscroll js está en la cabeza de html y no en ningún evento de página en js – Adi