Tengo una tabla y en cada fila quiero ejecutar el temporizador de acuerdo con un número de conteo máximo diferente para cada fila.
<tr> <td class='timer' data-maxTime='10'></td> </tr> <tr> <td class='timer' data-maxTime='20'></td> </tr> <script> $(".timer").each(function(){ var count = $(this).attr("data-maxTime"); runTimer($(this),count); }); function runTimer(ele,count){ interval = setInterval(function() { timer = count.split(':'); minutes = parseInt(timer[0], 10); seconds = parseInt(timer[1], 10); --seconds; minutes = (seconds < 0) ? --minutes : minutes; if (minutes < 0) { clearInterval(interval); } seconds = (seconds < 0) ? 59 : seconds; seconds = (seconds < 10) ? '0' + seconds : seconds; if(minutes > -1){ ele.html(minutes + ':' + seconds); rideTime = minutes + ':' + seconds; } },1000); } </script>El temporizador se está ejecutando para cada caso, pero hay un retraso de 1 segundo para cada fila. ¿Alguien puede sugerir cómo estos temporizadores comienzan exactamente al mismo tiempo?
Lo más probable es que el problema resida en su función runTimer , porque está asignando el resultado de setInterval a una variable indefinida ( interval ), que se convertirá en una variable global. Cuando llama a runTimer por segunda vez, en realidad está sobrescribiendo esa variable global.
Intente definir su variable de interval primero.