2013-07-21 14 views
14

Używam iScroll do tworzenia aplikacji internetowej i nie mogę kliknąć żadnych elementów div znajdujących się w opakowaniu iscroll. Próbowałem ustawić opcję eventPassthrough, aby była prawdziwa, ale powoduje to znaczne problemy z przewijaniem.Włączanie zdarzeń kliknięcia w programie iScroll w przeglądarce mobilnej

Ktoś to przeżył?

Edytuj: Używam programu iScroll 5. Wydarzenia z kliknięciem działają w wersji chrome, firefox i safari, ale nie w mobilnym safari ios.

+1

której wersji używasz iscroll? – Hushme

Odpowiedz

46

Spróbuj ustawić opcję "kliknij: true"

przykład:

myScroll = new IScroll('#wrapper', { click: true }); 

Miałem ten sam problem na iOS6 i to naprawić problem

+5

Należy również zauważyć, że może być konieczne dodanie 'dotknij: true' – Prisoner

+0

dla mnie na android chrome –

+0

Świetnie! Rozwiązałem moje problemy na iPhone – kieste

9

ja też wpadłem na ten sam problem i zaczął używać podejścia { click: true } (wskazanego powyżej) jako rozwiązanie. Problem z tym podejściem polega na tym, że podczas wyświetlania na pulpicie otrzymasz dwa zdarzenia kliknięcia (tj. Jedno zdarzenie z rzeczywistego kliknięcia myszą i jedno zdarzenie z IScroll).

Sugerowanym podejściem do funkcji IScroll documentation jest emitowanie niestandardowego zdarzenia "dotknięcia" przy użyciu opcji IScroll.

Przykład:

<script type="text/javascript"> 
    var scroller = new IScroll('#wrapper', { tap: true }); 
    $('#scroller').on('click, tap', '.clickable', function() { 
     //do something.... 
    }); 
</script> 

<div id="wrapper"> 
    <div id="scroller"> 
     <div class="clickable"></div> 
     <div class="clickable"></div> 
     <div class="clickable"></div> 
    </div> 
</div> 
0

Spróbuj dodać kliknij: true dla iPhone. Android pracował poniżej poniżej. Ale Android działał bez kliknij: true.

myScroll = new IScroll('#myWrapper', { 
    tap: true, 
    click: true,  
}); 
Powiązane problemy