Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Função reinicia jogo retorna -1 no tempo de jogo (solução)

Dado que o tópico abaixo já está fechado, estou abrindo um novo para complemento de solução.

https://cursos.alura.com.br/forum/topico-funcao-reinicia-jogo-retorna-1-no-tempo-de-jogo-34430

A solução que foi dada originalmente funciona mas não atende corretamente aos princípios que são ensinados, pois não recupera o valor do campo. Desta forma, se for alterado o valor no HTML depois vai ter que ajustar o JS também.

O que percebi foi que a função tempoDeJogo do Leonardo não inicializava a variável tempo restante, pois ele "mandou" a declaração para o início do JS (como uma declaração Global). Para as outras variáveis isso não é um problema mas, como a variável tempo restante é modificada durante a execução, ela tem que ser reinicializada a cada chamada da função.

Versão do post:

function tempoDeJogo() {

    campoDigitacao.one("focus", function() {

Versão corrigida:

function tempoDeJogo() {
    var tempoRestante = $("#tempo-digitacao").text();
    campoDigitacao.one("focus", function() {
2 respostas

Como complemento...

No módulo 2 do JQuery (aula 2 - atividade 3) o Douglas faz uma correção sobre esta função quando passa a buscar frases em um repositório. O tempoRestante passa a ser inicializado dentro do listener:

function tempoDeJogo() {
    campoDigitacao.one("focus", function() {
       var tempoRestante = $("#tempo-digitacao").text();
solução!

Boa tarde, Cristiano! Como vai?

Obrigado pela sua colaboração e por compartilhar com a comunidade da Alura a sua solução! É com participações como essa sua que fazemos da Alura uma plataforma cada vez melhor! Continue assim!

Grande abraço e bons estudos, meu aluno!

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