¿Es posible reconocer eventos táctiles en el navegador Safari del iPad usando jQuery?
Usé eventos mouseOver y mouseOut en una aplicación web. ¿Hay eventos similares para el navegador Safari del iPad ya que no hay eventos como mouseOut y mouseMove?
jquery
ipad
events
mobile-safari
jquery-events
Abhishek B.
fuente
fuente
Si está utilizando jQuery 1.7+ es aún más simple que todas estas otras respuestas.
fuente
$('#whatever').on('touchstart click', function(){ /* do something... */ });
$('#whatever').on({ 'touchstart' : function(ev){}});
,ev
no parece tener ninguna información sobre los toques (toques, toques de destino o toques cambiados)ev.originalEvent
.El enfoque más simple es usar una biblioteca JavaScript multitáctil como Hammer.js . Entonces puedes escribir código como:
Y puedes seguir adelante. Admite tocar, tocar dos veces, deslizar, mantener, transformar (es decir, pellizcar) y arrastrar. Los eventos táctiles también se activan cuando ocurren acciones equivalentes del mouse, por lo que no necesita escribir dos conjuntos de controladores de eventos. Ah, y necesitas el complemento jQuery si quieres poder escribir de la manera jQueryish como yo lo hice.
fuente
Usar el inicio táctil o el toque solo no es una buena solución, porque si desplaza la página, el dispositivo también la detecta como tocar o tocar. Entonces, la mejor manera de detectar un evento de tocar y hacer clic al mismo tiempo es detectar los eventos táctiles que no mueven la pantalla (desplazamiento). Para hacer esto, simplemente agregue este código a su aplicación:
Lo probé y funciona bien para mí en iPad y iPhone. Detecta el toque y puede distinguir el desplazamiento táctil y táctil fácilmente.
fuente
Puede usar .on () para capturar múltiples eventos y luego probar el tacto en la pantalla, por ejemplo:
fuente
.bind
está en desuso. Deberías usar.on
jQuery Core no tiene nada especial, pero puede leer en la página jQuery Mobile Events sobre diferentes eventos táctiles, que también funcionan en otros dispositivos que no sean iOS.
Son:
Tenga en cuenta también que durante los eventos de desplazamiento (basados en dispositivos táctiles en dispositivos móviles), los dispositivos iOS congelan la manipulación del DOM durante el desplazamiento.
fuente
Estaba un poco preocupado por usar solo touchmove para mi proyecto, ya que solo parece dispararse cuando su toque se mueve de una ubicación a otra (y no en el toque inicial). Así que lo combiné con touchstart , y esto parece funcionar muy bien para el toque inicial y cualquier movimiento.
fuente
document.getElementById("ttime").innerHTML = ((new Date()) - touchTime); touchTime = new Date();
Acabo de probar el complemento GitHub jQuery Touch Events de benmajor para las versiones 1.4 y 1.7+ de jQuery. Es liviano y funciona perfectamente con ambos
on
ybind
al mismo tiempo proporciona soporte para un conjunto exhaustivo de eventos táctiles.fuente