2013-05-01 38 views
7

piszę część kodu javascript tylko tak:Touchend nie strzelać po touchmove na Androida 4.x?

var el = document.getElementById('some-div'); 
    el.ontouchstart = function(e){ 
      el.innerHTML = "touch start"; 
    }; 
    el.ontouchend = function(e){ 
      el.innerHTML = "touch end"; 
    }; 
    el.ontouchmove = function(e){ 
      el.innerHTML = "touch moved"; 
    }; 

ten kod działa dobrze na IOS i Android/safair 2.x.x. Na Androidzie 4.x (próbowałem 4.0.4 & 4.1), nie dotykaj po dotknięciu touchmove. Jeśli dotknę ekranu, nie ruszaj palcem, touchend zostanie zwolniony.

Jak to naprawić?

Jest to błąd z chromem, szczegóły tutaj: http://code.google.com/p/chromium/issues/detail?id=152913

Odpowiedz

2

wierzę, jeśli zadzwonisz e.preventDefault() w touchstart lub touchmove zatrzyma zdarzenie namoczeniu zanim trafi swój obsługi ontouchend. Nie mam tutaj urządzenia, aby wypróbować je teraz :)