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;)