tagify tageditor tag bootstrap jquery iphone event-handling touch

tageditor - tagify jquery



¿Conserva jQuery las propiedades de los eventos táctiles? (2)

Mientras este código produce el comportamiento esperado de "1" al tocar la pantalla:

document.getElementById(''someNodeId'').addEventListener(''touchmove'', touch, true); function touch(evt) { evt.preventDefault(); alert(evt.changedTouches.length); }

el mismo código usando un selector jQuery:

$(''#someNodeId'').bind(''touchmove'', touch);

produce el error: "TypeError: El resultado de la expresión ''evt.changedTouches'' [indefinido] no es un objeto".

(Dispositivo = iPod Touch OS 3.1.3 (7E18); jQuery 1.4.2).

¿Cómo es esto posible y qué estoy haciendo mal?


Tratar

$(document).ready (function () { $("#someNodeId").bind("touchmove", function (event) { var e = event.originalEvent; console.log(e.targetTouches[0].pageX); }); });


Yo uso esta función simple para el proyecto basado en JQuery

var pointerEventToXY = function(e){ var out = {x:0, y:0}; if(e.type == ''touchstart'' || e.type == ''touchmove'' || e.type == ''touchend'' || e.type == ''touchcancel''){ var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; out.x = touch.pageX; out.y = touch.pageY; } else if (e.type == ''mousedown'' || e.type == ''mouseup'' || e.type == ''mousemove'' || e.type == ''mouseover''|| e.type==''mouseout'' || e.type==''mouseenter'' || e.type==''mouseleave'') { out.x = e.pageX; out.y = e.pageY; } return out; };

ejemplo:

$(''a'').on(''mousemove touchmove'', function(e){ console.log(pointerEventToXY(e)); // will return obj ..kind of {x:20,y:40} })

Espero que esto te sea de utilidad;)