Vue: O envio de eventos não é feito na ordem correta?

Criado em 29 jul. 2016  ·  3Comentários  ·  Fonte: vuejs/vue

Versão Vue.js

1.0.26

Link de reprodução

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

Passos para reproduzir

  1. Clique na entrada
  2. Tente clicar no botão

    O que é esperado?

Um evento de clique a ser acionado e, em seguida, o desfoque para continuar.

O que está realmente acontecendo?

Um evento blur é chamado e o evento click é descartado.


Eu realmente não tenho ideia se isso está relacionado ao Vue ou como o navegador lida com as delegações de eventos. Embora eu tenha testado isso com Firefox, Chrome, IE e Edge, TODOS eles se comportaram da mesma forma.

Qualquer pista seria muito apreciada.
Desde já, obrigado.

Comentários muito úteis

Este é um comportamento padrão do navegador. Você pode querer ouvir o evento mousedown .

Uma maneira adequada seria usar uma lógica mais complicada:

  • Dê ao botão um momento para desaparecer após o desfoque de entrada.
  • Força o botão a ficar visível se o próprio botão estiver focado.

Todos 3 comentários

Esta é uma pergunta interessante.
Acho que o keydown relacionado ao clique aciona o desfoque na entrada antes mesmo que o evento de clique seja acionado.

Complicado.

Este é um comportamento padrão do navegador. Você pode querer ouvir o evento mousedown .

Uma maneira adequada seria usar uma lógica mais complicada:

  • Dê ao botão um momento para desaparecer após o desfoque de entrada.
  • Força o botão a ficar visível se o próprio botão estiver focado.

mousedown evento é suficiente, eu acho, muito obrigado @simplesmiler !

Esta página foi útil?
0 / 5 - 0 avaliações