w3schools touchend tactiles eventos evento event changedtouches jquery touch-events

jquery - touchend - touchmove event javascript



jquery touchstart en el navegador (3)

Intenta algo como esto:

var clickEventType = ((document.ontouchstart!==null)?''click'':''touchstart''); $(''obj'').bind(clickEventType, function(e){});

Mejor aún, use .on () para enlazar:

$(''body'').on(clickEventType, ''obj'', function(e){});

Esto verifica el documento para ver si existe un inicio táctil, si existe, entonces su evento es "inicio rápido" si no existe (la mayoría de los navegadores de escritorio) y luego su "clic".

También puedes disparar usando el mismo tipo de evento:

$(''obj'').trigger(clickEventType);

Como touchstart / touchend aún no es compatible con la mayoría de los navegadores de escritorio. ¿Cómo puedo crear un evento de inicio táctil que será igual al evento de ratón (que es compatible con todos los navegadores)?

Quiero algo como esto

$(''obj'').bind(''touchstart'', function(e){ });

será traducido a

$(''obj'').bind(''mousedown'', function(e){ })


No es la mejor solución, pero la mejor que he encontrado hasta ahora. ¿Caída? Solo funciona después de que sucedió el primer toque, por lo que no puede usar de forma síncrona :(

var isTouch = false; $(''body'').on(''touchstart'', function () { isTouch = true; });

También puede verificar si el soporte del navegador toca primero con modernizr, por ejemplo.

Recuerde no usarlo en el ámbito global (a menos que tenga que hacerlo). También puede cambiarlo para que sea modernizr "similar" agregando la clase is-touch-device a la etiqueta Html agregando después de isTouch = true código isTouch = true : $(''html'').addClass(''is-touch-device'') . En este caso, puede hacer referencia a él desde cualquier lugar (también desde css).


Puedes unir ambos a la vez ...

$(''obj'').bind(''touchstart mousedown'', function(e){ });

Si desea mousedown evento para touchstart automáticamente los eventos de touchstart (por lo tanto, solo necesita vincular el touchstart ) use ...

$(document).bind(''mousedown'', function(event) { $(event.target).trigger(''touchstart''); });

Tenga en cuenta que esto significa que los eventos de mousedown deben propagarse al document antes de que se pueda activar el evento de touchstart personalizado. Esto podría tener efectos secundarios inesperados.