• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

116
Views
El enlace de pulsación de tecla jQuery solo funciona cuando se establece un punto de interrupción en el depurador de Visual Studio

Creo que debe haber una condición de carrera, pero no sé cómo solucionarlo.

Tengo varias ENTRADAS alineadas en fila, cada una con una longitud máxima = 1, y quiero moverme a través de ellas mientras el usuario escribe una letra alfabética:

 /* jQuery 3.6.0 */ $("input").bind("keypress", function (e) { if (/[AZ]/i.test(e.key)) { /* breakpoint on this next line */ $(this).next('input').focus(); } });

Si coloco un punto de interrupción en la línea como se indica, el depurador se detiene allí como se esperaba, y si presiono [F5] para continuar, el enfoque avanza a la siguiente ENTRADA. Pero si elimino el punto de interrupción y ejecuto el programa normalmente, el foco no avanza.

almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El problema que tiene es que tiene una condición de carrera de la acción del evento y el enfoque. Puedes evitarlo con un tiempo de espera

 $("input").bind("keypress", function(e) { if (/[AZ]/i.test(e.key)) { window.setTimeout(() => $(this).next('input').focus(), 0); } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" /> <input type="text" /> <input type="text" /> <input type="text" /> <input type="text" />

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error