Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Por qué es el evento touchstart después de hacer clic?

Aquí hay algo raro, que estaba seguro de que funcionaba en los navegadores anteriores de celulares: En Chrome en Android y Safari en iOS, parece que el evento touchstart se dispara después del evento de clic, no antes. ¿Cuándo cambió esto?

Un ejemplo sencillo:

  • No se puede encontrar android sdk 2.3.4 en el gestor de SDK
  • RecyclerView: encuentra el último elemento visible inmediatamente después de la vista
  • Atributos personalizados del enum de seguridad en Android
  • Reciclar vista - java.lang.NullPointerException
  • Null keyevent y actionid = 0 en onEditorAction () (Jelly Bean / Nexus 7)
  • Agregar herramientas sdk a la ruta en la aplicación de Android Studio
  • jQuery(function($) { var touched = false; $('#clicky').on('touchstart', function(evt){ touched = true; evt.preventDefault(); }) .click(function(){ if (!touched) { alert("somehow touch didn't fire") } }); }) 

    Ejecutar este violín, y verá la alerta puede aparecer en Android e iOS, cuando en realidad nunca se muestran!

    Http://jsfiddle.net/quxnxu7d/2/

  • Cordova Ionic - La aplicación se detuvo inesperadamente
  • Grupos enlazados en ExpandableListView
  • Botón para mostrar el teclado virtual?
  • Detectar el android de mi aplicación: versionCode en tiempo de ejecución
  • Byte matriz de imagen en imageview
  • Representación de fuentes personalizadas en Android 4.0 (sandwich de helado)
  • 3 Solutions collect form web for “¿Por qué es el evento touchstart después de hacer clic?”

    Corrí a través de Chrome en Android y funcionó como usted esperaba para mí. He añadido una alerta al controlador touchstart y disparó para estar seguro de que estaba disparando primero y lo hizo.

    Echa un vistazo al artículo td touch mdn . El artículo menciona específicamente:

    Llamando a preventDefault () en un touchstart o el primer evento touchmove de una serie impide que los eventos correspondientes del ratón touchmove

    Click es un evento de ratón por lo que "debe" funcionar como usted espera (y que estaba trabajando para mí). Comprobaría que los eventos se están ejecutando realmente fuera de orden (utilice console.log() lugar de alert() ) en sus navegadores de destino. Si lo son, lo que es perfectamente posible con menos de navegadores / especificaciones perfectos, intente utilizar un evento de mouse diferente como mouseup . Mi conjetura es que usted podrá encontrar un acontecimiento que trabaje constantemente.

    ¡Buena suerte!

    ¿Has intentado usar mousedown lugar de click ? De esa manera usted debe obtener diferentes eventos para tocar y hacer clic sin ningún doble disparo. También es probable que necesite usar keydown para mantener este sitio accesible.

    Hay un retraso de 300ms entre un toque físico y el disparo de un evento de clic en algunos navegadores móviles (por ejemplo, iOS Safari) me encontré con el mismo problema y FastClick plugin jQuery lo arregló para mí

    Echa un vistazo FastClick

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.