2010-08-20 9 views

Antwort

35

Versuchen e.originalEvent.touches mit:

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

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

ich in ein ähnliches Problem lief, als ich um mit Touch-Ereignissen und jquery spielen: http://xavi.co/articles/trouble-with-touch-events-jquery

+0

Am iPhone arbeiten, aber nicht am iPad arbeiten. Irgendeine Idee? – coure2011

+1

hmm, habe gerade versucht auf meinem ipad ... alles schien wie erwartet zu funktionieren. Siehst du Fehler? Haben Sie auch versucht, 'e.originalEvent.changedTouches [0]' zu überprüfen? – Xavi

+0

Ich versuche scroll von touchmove-Ereignis zu erkennen, aber in safari pageY, screenY Koordinaten des touchmove-Ereignisses funktionieren nicht richtig. - Wenn ich berühre und nach unten gehe, dann schwankt der Wert der Koordinaten (pageY, screenY), bedeutet, dass es 468,473,470,480,477,486,481 ist. Es sollte konsistent sein, steigend oder fallend, damit ich Scroll-Top oder Scroll-Down erkennen kann. bitte hilf mir. –

0

Es könnte so einfach sein wie eine Fehl namens DIV id (‘#info ') aber kann nicht sagen, ohne alles zu sehen.

Versuchen Sie dieses, und sehen Sie, wenn Sie noch keine Ausgabe erhalten:

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

(Sie werden auf Debug-Konsole in Mobilesafari drehen müssen)

UPDATE

So , von Ihrem Kommentar erhalten Sie einen Fehler: 'e.touches' is not an object

In diesem Fall versuchen, diese (nicht jQuery-spezifisch):

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' ist kein Objekt – coure2011

+0

Ich habe meinen Code aktualisiert. Versuch das. Wenn es funktioniert, können Sie von dort aus gehen. – donohoe

Verwandte Themen