5
respostas

Contador continua contagem se reiniciar antes do termino da contagem.

O código está com um problema, estou quebrando a cabeça pra resolver, quando clica no botão para resetar o jogo e zerar o contador, o contador retorna pra 10 mas instantaneamente o segundo continua a contagem de onde estava quando foi clicado, ou seja, se clica no botão de resetar antes de acabar o tempo, acontece isso. Tentei bolar alguma maneira para isso não ocorrer mas não consegui. Eu acho que tem que mudar a função inicializaCronometro onde o tempo é decrementado, tentei colocar o evento $(".botao-reiniciar").click(); dentro de uma condição para parar de decrementar mas não funcionou, mas acho que tem que ter incluindo algo nessa função:

function inicializaCronometro() {
  var tempoRestante = $(".tempo-digitacao").text();
  campo.one("focus", function () {
    var cronometroID = setInterval(function () {
      tempoRestante--;
      $(".tempo-digitacao").text(tempoRestante);
      if (tempoRestante < 1) {
        clearInterval(cronometroID);
        finalizaJogo();
      }
    }, 1000);
  });
}

Alguém tem alguma idéia?

5 respostas

não sei se entendi bem, mas talvez sua variável "cronometroId" deveria ser global (sugiro o uso do let) e quando você disparar a função a partir do clique no botão de reset, execute o "clearInterval" nesta função, deve resolver

cronometroId vai ser global iniciando com qual valor?

O clearInterval já está dentro da função, que reseta o contador se for menor que 1.

Todo caso defini o cronometroId como global inicializando com 10, mas isso não resolveu.

Para que entenda melhor, se você clica no campo para digitar as palavras, o tempo vai começar a contar regredindo, certo? Então ele vai contando 10, 9, 8, 7, 6... e se você clicar no botão de reset para reiniciar o jogo antes desse tempo acabar, ele vai resetar o jogo, o contador vai pra 10, mas instantaneamente ele vai continuar contando 6, 5, 4, 3, 2, 1 e vai travar o campo. Isso que está ocorrendo.

Entendi a questão. Se quiser e puder, me envie seu código para eu dar uma olhada, talvez vendo o todo eu consiga verificar onde está o detalhe, abraço!

Pode enviar por email: 98gabrielsc@gmail.com

Olá Gabriel, tudo jóia. Eu coloquei o código no paste só alterando a parte da fonte jquery, mas o resto é tudo igual, e podes colocar e executar local alterando apenas a fonte jquery. Segue o link para poder pegar o código e verificar: https://jsbin.com/bovupikice/edit?html,css,js,output

Dae você verá esse problema do contador, mas o código do curso tbm está assim. Vlw

Alguém com alguma novidade?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software