Ответ 1
Используйте событие touchmove
вместо этого (работает в моем Android-браузере на Froyo), хотя есть некоторые проблемы с ним - браузер обновляет div только тогда, когда сенсорный режим был выпущен, однако событие все еще запущено для каждого движение касания. Это можно продемонстрировать, изменив код на это:
var x = 0; $('html').bind('touchmove', function(e) { $('#status').html(x++); // Only updates on touch release });
Это связано с ошибкой в браузере Android - вам нужно позвонить event.preventDefault()
, чтобы сделать эту работу ожидаемой:
var x = 0; $('html').bind('touchmove', function(e) { e.preventDefault(); $('#status').html(x++); // Only updates on touch release });
Официальная информация об ошибке: доступна здесь
Чтобы определить текущую позицию X и Y, вы должны использовать объект event.touches
:
$(window).bind('touchmove', function(jQueryEvent) {
jQueryEvent.preventDefault();
var event = window.event;
$('#status').html('x='+event.touches[0].pageX + ' y= ' + event.touches[0].pageY);
});
jQuery создает собственную "версию" объекта события, которая не имеет собственных свойств браузеров, таких как .touches
- поэтому вам нужно использовать window.event
вместо