2014-02-13 3 views
3

Когда я пытаюсь проверить touchmove события в this jsbin demo он только запускает раз в Chrome и Opera для Android, и сразу же после этого, это вызывает touchcancel события, вместо того, чтобы вызвать touchmove события?Android браузеров не обрабатывают TouchMove события правильно

основе как the W3C specs и поведение touchmove события в обоих Firefox для браузера Android и Android по умолчанию, то мне кажется, что то, как события прикосновения должны работать в том, что touchmove события продолжает запуск во время прикосновения все еще находится на странице. После trying to test in this jsbin, хотя, я получил следующие сообщения журнала:

touchstart event; starting on (140,197) on the screen, or (381,536) on the page. 
touchend event; starting on (undefined,undefined) on the screen, or (undefined,undefined) on the page. 
touchstart event; starting on (181,137) on the screen, or (492,372) on the page. 
touchmove event; starting on (182,153) on the screen, or (495,416) on the page. 
touchcancel event; starting on (undefined,undefined) on the screen, or (undefined,undefined) on the page. 

Это то, что случилось, когда я первый нажал на экран (показан через touchstart и touchend), а затем перетащил экран (touchstart, touchmove и touchcancel). Исходя из того же , упомянутого выше, событие touchcancel должно только работать, когда что-то мешает, например, интерфейс браузера (если я правильно понимаю).

Поскольку я просто скользил пальцем по телу, не покидая окна вообще, я действительно озадачен этим, так что кто-нибудь знает, почему это происходит?

Я получаю этот неожиданный результат в Chrome 32 и Opera 19 для Android.

ответ

6

Оказалось, что проблема заключалась в том, что обработчик событий не имел в нем event.preventDefault(), поэтому первоначальное действие все еще выполнялось, что, по-видимому, прервало событие касания. Чтобы исправить это, просто добавьте e.preventDefault() в текущую функцию обработчика событий, чтобы отменить текущее событие, и заставить его работать так, как ожидалось, в Chrome и Opera.

Working demo.

 Смежные вопросы

  • Нет связанных вопросов^_^