Mentre questo codice produce il comportamento previsto di "1" quando si tocca lo schermo:jQuery conserva le proprietà degli eventi di tocco?
document.getElementById('someNodeId').addEventListener('touchmove', touch, true);
function touch(evt) {
evt.preventDefault();
alert(evt.changedTouches.length);
}
stesso codice utilizzando un selettore jQuery:
$('#someNodeId').bind('touchmove', touch);
produce l'errore: "TypeError: Risultato di espressione 'evt.changedTouches' [indefinito] non è un oggetto ".
(Dispositivo = iPod Touch OS 3.1.3 (7E18); jQuery 1.4.2).
Com'è possibile e cosa sto sbagliando?
un la spiegazione del perché 'originalEvent' sarà necessario utile per OP e altri che non hanno familiarità con la normalizzazione degli eventi di jQuery. – Anurag
Infatti; la spiegazione si trova qui: http://stackoverflow.com/questions/671498/jquery-live-removing-iphone-touch-event-attributes "Per" correggere "gli eventi, jQuery clona l'evento. così facendo, copia solo su un numero limitato di proprietà per motivi di prestazioni, tuttavia è comunque possibile accedere all'oggetto evento originale tramite la proprietà event.originalEvent. " In effetti non sono sicuro che sia molto utile usare jQuery su iPhone; Ho seguito questa strada a causa di jQTouch ma ora me ne sto allontanando. – Bambax