Подтвердить что ты не робот

Iphone safari touchmove событие не работает

Я использую событие jquery и touchmove, но код не показывает ничего в #info

$('#movieShow').bind('touchmove',function(e){                   
    e.preventDefault();                 
    $('#info').text(e.touches[0].pageX);
});         
4b9b3361

Ответ 1

Попробуйте использовать e.originalEvent.touches:

$('#movieShow').bind('touchmove',function(e){
    e.preventDefault();

    var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
    console.log(touch.pageX);
});

У меня возникла аналогичная проблема, когда я играл с событиями касания и jquery: http://xavi.co/articles/trouble-with-touch-events-jquery

Ответ 2

Это может быть так же просто, как неверно названный DIV id ('#info'), но не может сказать, не видя всего.

Попробуйте это, и посмотрите, не по-прежнему ли вы получаете результат:

$('#movieShow').bind('touchmove',function(e){                   
    e.preventDefault();                 
    console.log(e.touches[0].pageX);
});

(вам нужно включить консоль отладки в MobileSafari)

UPDATE

Итак, из вашего комментария вы получите сообщение об ошибке: 'e.touches' is not an object

В этом случае попробуйте это (не специфично для jQuery):

document.addEventListener('touchmove', function(e) { e.preventDefault(); }, false);
document.getElementById('movieShow').addEventListener('touchmove',  function(e){
  console.log(e.touches[0].pageX);
},  false);