2010-08-20 21 views
12

estoy usando jQuery y el evento touchmove pero el código no aparece nada en #infodel iPhone no funciona

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

Respuesta

35

Trate de usar e.originalEvent.touches:

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

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

me encontré con un problema similar cuando estaba jugando con eventos de toque y jQuery: http://xavi.co/articles/trouble-with-touch-events-jquery

+0

Trabajando en iphone pero no trabajando en iPad. ¿Alguna idea? – coure2011

+1

hmm, acabo de probar en mi ipad ... todo parecía funcionar como se esperaba. ¿Estás viendo algún error? ¿Has intentado comprobar 'e.originalEvent.changedTouches [0]'? – Xavi

+0

Estoy tratando de detectar el desplazamiento del evento touchmove, pero en la página safari Y, las coordenadas screenY del evento touchmove no funcionan correctamente. - Cuando toco y muevo hacia abajo, el valor de las coordenadas (páginaY, pantallaY) fluctúa, significa que va como 468,473,470,480,477,486,481, debe ser consistente, aumentar o disminuir para que pueda detectar la parte superior de desplazamiento o desplazarse hacia abajo. por favor ayúdenme. –

0

Podría ser tan simple como un DIV Identificación del mal llamado (' #info ') pero no puede ver sin ver todo.

Prueba de esto, y ver si sigue sin obtener la salida:

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

(Tendrá que activar la consola de depuración en MobileSafari)

ACTUALIZACIÓN

Así , de tu comentario obtienes un error: 'e.touches' is not an object

En ese caso, probar este (no jQuery específico):

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

'e.touches' no es un objeto – coure2011

+0

He actualizado mi código. Trata eso. Si funciona, entonces puedes ir desde allí. – donohoe

Cuestiones relacionadas