Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

167
Visualizações
¿Cómo evitar carreras entre eventos de clic y desenfoque?

mi código angular se ve así>

 <input type='text' (blur)='saveData()'> <button (click)='navigateToPage2()'>

Saltando desde el cuadro de texto enfocado al clic del botón , hay una condición de carrera entre dos eventos.

El problema es que el clic del botón se ignora porque el evento de desenfoque se activa primero y trae la rueda giratoria a la pantalla mientras realiza una llamada al servidor para guardar datos.

¿Cómo resuelvo este problema exacto?

¿Hay algún truco para hacer que el evento de clic se active antes del evento de desenfoque?

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

En lugar de tal truco para disparar, haga clic antes del evento de desenfoque, intente la siguiente solución:

Para comprender esto mejor, debe conocer este orden en el que se activa un evento específico:

  1. ratón hacia abajo
  2. difuminar
  3. ratón arriba
  4. hacer clic

Puede usar esta orden para trabajar a su favor en este caso.

Intente usar el evento Mousedown en su lugar y eso se activará antes del evento de desenfoque.

Además, intente ejecutar este fragmento de código. Te ayudará a entender el orden anterior.

 Type first in text box below and then click button <br/> <input type='text' onblur="console.log('blur');" /> <button onclick="console.log('click')" onmouseup="console.log('mouseup')" onmousedown="console.log('mousedown')" > Type first and then this click button</button>

about 4 years ago · Santiago Trujillo Relatório

0

De acuerdo con este ejemplo, también puede usar e.preventDefault en el evento mouseDown: https://codepen.io/mudassir0909/pen/eIHqB (usó jquery pero debería ser lo mismo con otra biblioteca)

about 4 years ago · Santiago Trujillo Relatório

0

Si está escuchando en (blur)="onBlur()" envuelva el contenido de onBlur() en un setTimout con una duración de 100 ms o más.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda