¿Es posible reconocer eventos táctiles en el navegador Safari del iPad usando jQuery?
Usé eventos mouseOver y mouseOut en una aplicación web. ¿Existen eventos similares para el navegador Safari del iPad ya que no hay eventos como mouseOut y mouseMove?
Core jQuery no tiene nada especial para eventos táctiles, pero puede crear fácilmente los suyos usando los siguientes eventos
Por ejemplo, el touchmove
document.addEventListener('touchmove', function(e) { e.preventDefault(); var touch = e.touches[0]; alert(touch.pageX + " - " + touch.pageY); }, false);Esto funciona en la mayoría de los navegadores basados en WebKit (incluido Android).
Si está utilizando jQuery 1.7+, es incluso más simple que todas estas otras respuestas.
$('#whatever').on({ 'touchstart' : function(){ /* do something... */ } });Usar solo touchstart o touchend no es una buena solución, porque si se desplaza por la página, el dispositivo también lo detecta como toque o toque. Por lo tanto, 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). Entonces, para hacer esto, simplemente agregue este código a su aplicación:
$(document).on('touchstart', function() { detectTap = true; // Detects all touch events }); $(document).on('touchmove', function() { detectTap = false; // Excludes the scroll events from touch events }); $(document).on('click touchend', function(event) { if (event.type == "click") detectTap = true; // Detects click events if (detectTap){ // Here you can write the function or codes you want to execute on tap } });Lo probé y me funciona bien en iPad y iPhone. Detecta el toque y puede distinguir el toque y el desplazamiento táctil fácilmente.