2011-10-07 19 views
6

Im obecnie wyciągając moje włosy, próbując dostać iscroll 4 pracy z jQuery Mobile.za pomocą iscroll z jquery mobile

Wszystko działa dobrze, wyłączam domyślną nawigację JQM ajax, ale chciałbym to zachować.

Mój problem polega na tym, że nie mogę się dowiedzieć, jak skutecznie wywoływać/wiązać iscroll, więc działa on na stronach, które ich potrzebują. Próbowałem pageinit() i pagecreate() bez skutku.

Wszelkie wskazówki bardzo doceniane.

A.

Odpowiedz

8

zainicjować/odświeżyć instancje iScroll na wydarzeniach pageshow i orientationchange. Ustawiłem klasy na data-role="content" divs, które chcę przewijać (w tym przypadku użyłem klasy .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

ty załadować iscroll js przed http://code.jquery.com/mobile/1.0rc1/jquery.mobile-1.0rc1.min.js? – Adi

+0

Nie jest to ostatni skrypt, który wczytuję. Jeśli masz trudności z zainicjowaniem instancji iScroll, upewnij się, że postępujesz zgodnie z przykładem na stronie iScroll. iScoll przewija tylko bezpośrednie dziecko elementu, do którego go wywołujesz. – Jasper

+0

mogę to zrobić działa, po prostu nie z nawigacji JQM ajax. tj. jeśli dojdę do strony iscroll nie działa. jeśli odświeżam tę stronę, to działa dobrze (przypuszczalnie, ponieważ czyta wszystkie js ponownie) obecnie iscroll js jest w nagłówku HTML, a nie w żadnym zdarzeniu strony w js – Adi