Estoy trabajando en un sitio web móvil que tiene que funcionar en una variedad de dispositivos. El que me está dando dolor de cabeza en este momento es BlackBerry.
Necesitamos admitir tanto los clics del teclado como los eventos táctiles.
Idealmente, solo usaría:
$thing.click(function(){...})
pero el problema con el que nos encontramos es que algunos de estos dispositivos blackberry tienen un retraso muy molesto desde el momento en que se toca hasta que se activa un clic.
El remedio es usar touchstart en su lugar:
$thing.bind('touchstart', function(event){...})
Pero, ¿cómo hago para vincular ambos eventos, pero solo para disparar uno? Todavía necesito el evento de clic para dispositivos de teclado, pero, por supuesto, no quiero que se active el evento de clic si estoy usando un dispositivo táctil.
Una pregunta adicional: ¿hay alguna forma de hacer esto y, además, acomodar navegadores que ni siquiera tienen un evento de inicio táctil? Al investigar esto, parece que BlackBerry OS5 no es compatible con el inicio táctil, por lo que también tendrá que depender de los eventos de clic para ese navegador.
APÉNDICE:
Quizás una pregunta más completa es:
Con jQuery, ¿es posible / recomendado manejar las interacciones táctiles y las interacciones del mouse con los mismos enlaces?
Idealmente, la respuesta es sí. Si no, tengo algunas opciones:
1) Usamos WURFL para obtener información del dispositivo para poder crear nuestra propia matriz de dispositivos. Dependiendo del dispositivo, usaremos touchstart O haremos clic.
2) Detectar soporte táctil en el navegador a través de JS (necesito investigar un poco más sobre eso, pero parece que es factible).
Sin embargo, eso todavía deja un problema: ¿qué pasa con los dispositivos que admiten AMBOS? Algunos de los teléfonos que admitimos (a saber, Nokias y BlackBerries) tienen pantallas táctiles y teclados. Entonces, eso me lleva de vuelta a la pregunta original ... ¿hay alguna manera de permitir ambas cosas a la vez de alguna manera?
.bind('touchstart mouseup')
lo resolverá (según uno de los comentarios a continuación)