1
resposta

Reiniciar Cronometro

Toda vez que tento reiniciar o cronometro, ele continua rodando o valor anterior até zerar, então para reiniciar o jogo eu tenho que esperar o cronometro zerar.

Gostaria de reiniciar o jogo a qualquer momento.

var tempoInicial = $("#tempo-frase").text();

function inicializaCronometro(){

    var tempoRestante = $("#tempo-frase").text();

    campo.one("focus", function () {  // Função One é igual a ON mas só executa o código uma vez enquanto a função on executa varias com base na condição
        var setId = setInterval(function(){

            tempoRestante--;
            $("#tempo-frase").text(tempoRestante);

            if (tempoRestante < 1) {  
                campo.attr("disabled",true); // função que acessa o parametro de uma tag || É possivel editar esse parametro
                clearInterval(setId); // todo setInterval retorna um id, e no caso eu to usando a função para parar o Set
            };
        }, 1000);
    });
};


function reinicia(){

    campo.attr("disabled",false); //desabilitando o campo
    campo.val(""); //limpando a area de texto
    $("#contador-caracteres").text("0");
    $("#contador-palavras").text("0");
    $("#tempo-frase").text(tempoInicial);
    inicializaCronometro();
}

HTML

<ul class="informações">
        <li><span id="tamanho-frase"></span> palavras</li>
        <li><span id="tempo-frase">10</span> segundos</li>
    </ul>

    <textarea class="campo-digita" rows="8" cols="40"> </textarea>
    <button id="botao-reiniciar">Reiniciar jogo</button>
1 resposta

Fala ai Fernando, tudo bem? Você está desabilitando o botão de Reiniciar o jogo? Se não, você pode tentar zerar o setInterval, algo assim:

clearInterval(setId)

Porém vai precisar tornar o setId global, ou seja, mover ele de dentro da função campo.one para fora junto com tempoInicial.

Se estiver desabilitando o botão, ai sugiro tentar outras soluções.

Espero ter ajudado.