2012-01-20 22 views
5

He desarrollado una aplicación web en asp.net 3.5. Está consumiendo muchos eventos de javascript/JQuery y funciona correctamente en el navegador normal de la PC, pero mi cliente dice que no funcionan en tablet-pc/android e IPad. Al igual que tengo una lista desplegable en la que estoy activando la pulsación de teclas y los eventos de clic del mouse en JavaScript, y estos están funcionando perfectamente en navegadores normales, necesito estar en forma de trabajo todo esto en iPads y tabletas con Android.Javascript ¿Los eventos no funcionan en Tablet-pc?

+0

así no obtiene todo de forma gratuita (sin esfuerzo), tenga en cuenta que en iPads y dispositivos Android, el concepto de clic y doble clic es diferente de en una PC. Si bien jQuery es una muy buena opción para admitir la programación del lado del cliente entre navegadores, depende de cómo la use. Marque esta para más detalles: http://stackoverflow.com/questions/475674/what-javascript-events-are-available-to-webkit-on-android –

+0

Creo que este enlace es para segmentar solo a los usuarios de Android, pero mi El objetivo es el navegador de Windows PC normal, tableta e IPad. –

Respuesta

4

Los eventos de clic no funcionarán en el iPad, ya que es la pantalla táctil, haga clic en vs táctil, supongo. ¿Ha considerado usar JQueryMobile en lugar de JQuery? I está optimizado para dispositivos táctiles, como se indica en la primera página del sitio.

En lugar de utilizar haga clic en él tiene toda una serie de events you can hook into es decir toque, deslizar, taphold etc ... Sería bastante fácil de enganchar la misma función en un clic y un evento del grifo es decir

('myelement').bind('click', function(event){ 
    myClickFunction(); 
}); 

('myelement').bind('tap', function(event){ 
    myClickFunction(); 
}); 

Hay posiblemente (casi seguro) formas más elegantes de hacer esto, pero eso es solo un comienzo realmente.

+3

Puede hacer esto: '$ ('myelement'). Bind ('click', myClickFunction) .bind ('tap', myClickFunction);' para que el código se vea bonito –

+0

@AndrewJackman brilliant - bien hecho señor –

+0

Añadí una nueva lista desplegable allí y activa el evento normal de selectedIndexCHanged allí y funciona. Porque en las pantallas táctiles no necesitamos disparar ningún evento de flecha izquierda o flecha abajo o alguna otra cosa. Hasta ahora estoy esperando a mi cliente. Espero que funcione en su máquina también, porque funcionó en mi mcahine. –

1

Hay eventos táctiles para un dispositivo de pantalla táctil:

touchstart: a finger is placed on a DOM element. 
touchmove: a finger is dragged along a DOM element. 
touchend: a finger is removed from a DOM element. 

Tal vez usted quiere intentar trabajar con ellos. Una vez dicho esto, es bueno usar eventos como change (o onchange en línea con el elemento) para una lista desplegable porque funcionará sin importar qué lo cambie (teclado, evento de mouse o evento táctil).

Here es un recurso para obtener más información.

0

Se puede utilizar una combinación y tratar touchstart en lugar de grifo

('myelement').bind('touchstart click', function(event){ 
    myClickFunction(); 
}); 
Cuestiones relacionadas