Estoy tratando de construir un juego de ludo usando JavaScript y Jquery. Así que quiero que las piezas se muevan paso a paso. Entonces, para eso, escribí este código:
function moveHorse() { $('td > img').click(function(event){ // ludo baby steps newfunc = setInterval(function(){ //Some Code },300); setTimeout(function(){ clearInterval(newfunc); }, randomDice*300); }); }
El código está funcionando muy bien. El intervalo se detiene en función del número de dados. Pero solo funciona una vez para cada jugador.
Cuando el usuario hace clic en las piezas por segunda vez, el intervalo se establece pero nunca se detiene. Encontré el problema y está sucediendo porque, después del primer intento, el intervalo se ejecuta varias veces en una sola ejecución.
Solo quiero saber como puedo solucionarlo.
Consulte este video para comprender mejor mi problema: https://youtu.be/7d8A8qB5TG8
El problema era la ejecución de varias funciones a la vez. Durante el primer movimiento, la función moveHorse se ejecutó solo una vez. Pero después de eso, se ejecutó de 3 a 7 veces con cada clic.
Encontré una respuesta de Stackoverlfow que resolvió mi problema. Enlace de la respuesta - Javascript - evita que la función se ejecute varias veces