1
resposta

dúvida da function inicizalizaCronometro( );

function inicializaCronometro(){
    var tempoRestante = $("#tempo-digitacao").text();  //AQUI

    campo.one("focus", function(){
    var cronometroID = setInterval(function(){
        var restante = tempoRestante--;
        $("#tempo-digitacao").text(tempoRestante);
         if (tempoRestante < 1){
             campo.attr("disabled", true);
             clearInterval(cronometroID);
         }
    },1000);

     });


var tempoInicial = $("#tempo-digitacao").text();
function reiniciaJogo(){
    campo.attr("disabled", false);
    campo.val("");
    $("#contador-caracteres").text("0");
    $("#contador-palavras").text("0");
    $("#tempo-digitacao").text(tempoInicial);
    inicializaCronometro();

Por que a função inicializaCronometro( ); tem dentro dela a var responsável por pegar o conteúdo de texto dentro dela e a função reiniciaJogo( ); está com a var responsável por pegar o conteúdo de texto dela fora da função?

Deve ser uma coisa bem simples pelo jeito, mas não consigo ter uma noção do porque disso.

1 resposta

Danilo, boa tarde!

Isso ocorre porque toda vez que você inicializa o cronometro é necessário pegar o tempo para começar a contagem do campo já, ou seja ele não pode ser um valor constante e sim o que estiver naquele momento.

Já o reinicia jogo precisa iniciar com um tempo específico, e não muda de acordo com o jogo, se você colocasse dentro da função ele iria pegar o valor naquele momento, o que na primeira vez poderia até ser 10s mas depois da primeira rodada chegaria a 0 e o tempo inicial sempre ficaria 0

Espero ter ajudado e bons estudos!