Touchend не срабатывает после touchmove на Android 4.x?

Я пишу код с помощью Javascript так:

    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";
    };

Этот код отлично работает на iOS/Safari и Android 2.x.x. На Android 4.x (я пробовал 4.0.4 и 4.1) touchend не срабатывает после touchmove. Если я коснусь экрана, не двигайте пальцем, touchend сработает.

Как это исправить?

Это ошибка Chrome, подробности здесь: http://code.google.com/p/chromium/issues/detail?id=152913


person user2338712    schedule 01.05.2013    source источник


Ответы (1)


Я считаю, что если вы вызовете e.preventDefault() в touchstart или touchmove, это остановит поглощение события до того, как оно попадет в ваш обработчик ontouchend. У меня нет устройства, чтобы попробовать это прямо сейчас :)

person Tom Elmore    schedule 03.10.2013