2010-08-12 6 views
5

Tengo una serie de elementos seleccionados en un formulario en un sitio móvil. Estos elementos seleccionados se encuentran dentro de un panel desplazable manejado a través de transformaciones JS y CSS3, por lo que obtener un evento táctil/clic/lo que sea para registrarse en las selecciones fue suficiente de un dolor en primer lugar. Sin embargo, ahora estoy descubriendo, solo en Android, que a pesar de que se está haciendo clic en los seleccionados y se enfocan, simplemente se niegan a abrir. Estoy 100% seguro de que los seleccionados obtienen su evento de enfoque (a través de la depuración), así que, sinceramente, estoy completamente perplejo. Sin la depuración, no hay otros eventos de enfoque/desenfoque en las selecciones. Funciona bien en iPhone ... ¿Alguna idea?JUEGO DE INTERNET PARA ANDROID: selecciona elementos obteniendo eventos de enfoque, ¡pero sin abrir!

Respuesta

2

He estado golpeando mi cabeza contra la pared con este mismo problema. Parece estar aislado de Android 2.1/2.2 (y tal vez 2.0?). Las selecciones funcionan bien en Android 1.5/1.6. Incluso creé una página simple que simplemente cambia el estilo de visualización de la selección de none a block y la selección aún no se abre de manera consistente. Curiosamente, a veces después de la actualización de la página podría funcionar, y luego de otra actualización podría romperse nuevamente. Como dijiste, los eventos de enfoque y clic/toque disparan desde el elemento, por lo que no sé cuál es el problema.

A veces, si hago zoom en la página, puedo hacer que la selección se abra, pero incluso así el valor seleccionado no se representa en el elemento seleccionado en la página.

Envié un bug report al equipo de desarrollo de Android, pero incluso si se soluciona en futuras versiones, el problema seguirá existiendo en 2.1/2.2.

¿Alguien encuentra una solución para esto todavía?


// ---- ------ actualización
Si utiliza un webkit-transición para mostrar/ocultar el elemento, adjuntando la siguiente evento al elemento parece solucionar el selectas de interiores de la misma:

 
.addEventListener("webkitTransitionEnd",function(e){ 
    this.innerHTML = this.innerHTML; 
},false); 

no estoy del todo seguro de por qué esto funciona, pero re-escribir el elemento a la DOM parece ayudar por alguna razón. Probado en Android 2.1/2.2 simulador, EVO4G y MyTouch.

+0

tengo este problema. Probé tu solución en mi teléfono Droid 2 con Android 2.2 y no funcionó. –

0

Encontré la solución en this answer por a.meservy. Aquí está la respuesta, copiada para la conveniencia de todos.

En este caso, el problema fue causado por jQTouch. Para solucionarlo, basta con comentar estas 4 líneas en jqtouch.css

En "cuerpo"

/*-webkit-perspective: 800;*/ 
    /*-webkit-transform-style: preserve-3d;*/ 

En "body> *"

/*-webkit-backface-visibility: hidden;*/ 
/*-webkit-transform: translate3d(0,0,0) rotate(0) scale(1);*/ 
Cuestiones relacionadas