Vue: ¿El envío de eventos no se realiza en el orden correcto?

Creado en 29 jul. 2016  ·  3Comentarios  ·  Fuente: vuejs/vue

Versión Vue.js

1.0.26

Enlace de reproducción

http://codepen.io/anon/pen/akjNbW

pasos para reproducir

  1. Haga clic en la entrada
  2. Intenta hacer clic en el botón

    ¿Lo que es esperado?

Se activará un evento de clic y luego el desenfoque para continuar.

¿Qué está pasando realmente?

Se llama a un evento de desenfoque y se elimina el evento de clic.


Realmente no tengo idea si esto está relacionado con Vue o cómo el navegador maneja las delegaciones de eventos. Aunque probé esto con Firefox, Chrome, IE y Edge, TODOS se comportaron de la misma manera.

Cualquier pista sería muy apreciada.
Gracias por adelantado.

Comentario más útil

Este es un comportamiento estándar del navegador. Es posible que desee escuchar el evento mousedown en su lugar.

Una forma adecuada sería usar una lógica más complicada:

  • Dale al botón un momento para que desaparezca después de que la entrada se desenfoque.
  • Fuerce el botón para que sea visible si el botón mismo está enfocado.

Todos 3 comentarios

Esta es una pregunta interesante.
Creo que el keydown relacionado con el clic desencadena el desenfoque en la entrada incluso antes de que se dispare el evento de clic.

Complicado.

Este es un comportamiento estándar del navegador. Es posible que desee escuchar el evento mousedown en su lugar.

Una forma adecuada sería usar una lógica más complicada:

  • Dale al botón un momento para que desaparezca después de que la entrada se desenfoque.
  • Fuerce el botón para que sea visible si el botón mismo está enfocado.

Creo que el evento mousedown es suficiente, ¡muchas gracias @simplesmiler !

¿Fue útil esta página
0 / 5 - 0 calificaciones