Да, это возможно.Вам просто нужно сохранить значение в области видимости, которая будет видна в вашей функции touchMove()
.Для иллюстрации, мы можем решить эту проблему, загрязняя глобальную область:
function touchStart(event) {
touch(event.touches[0]);
window.startX = event.pageX;
};
function touchMove(event) {
event.preventDefault();
var moveX = event.pageX;
var totalMoved = Math.abs(window.startX - moveX);
};
Конечно, есть разные способы сделать это, не загрязняя глобальную область.Например, вы можете сделать так, чтобы функции вашего обработчика событий были членами некоторого объекта, который содержит необходимое состояние в качестве переменных-членов.Или обработчик touchStart()
может создать замыкание, которое инкапсулирует переменную startX
, а затем установить его в качестве обработчика touchesMoved
.И так далее.