Причина, по которой вы не получите pageX и pageY, заключается в том, что вы получаете событие touchcancel, которое не содержит никакой информации о координатах (в конце концов, это не сенсорный экран). Это не фактическое нажатие или щелчок, это событие касания, которое не перемещалось (превышало порог) и было достаточно быстрым.
Я столкнулся с тем же самым, когда использовал плагин touchswipe для jQuery, и мне пришлось обходить его, сохраняя координаты в событии touchstart и извлекая его в отменяющем, чтобы иметь возможность извлечь координаты.
Вы хотите сохранить их в стартовом событии (vmousedown в jquery mobile?):
event.touches[0].pageX
event.touches[0].pageY
Кроме того, на мобильном устройстве вы должны умножить координаты на window.devicePixelRatio
, чтобы получить точное положение на экране.