Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

162
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!