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

erro na função substr

meu código consta um certo erro na ao chamar o metodo frase.substr(0,digitado.lenght);

olha como esta o meu código:

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

$(document).ready(function () {
    atualizaTamanhoFrase();
    iniciaContatores();
    iniciaCronometro();
    $("#botao-reiniciar").click(reiniciaJogo);
});

function atualizaTamanhoFrase() {
    var frase = $(".frase").text();
    var numPalavras = frase.split(" ").length;
    var tamanhoFrase = $("#tamanho-Frase");
    tamanhoFrase.text(numPalavras);
}


function iniciaContatores() {
    campo.on("input", function () { /*input assim que o campo vai ganhando palavras ele vai atualizando em
     tempo real sem ter que ficar dando clicks para atualizar*/
        var conteudo = campo.val();

        var qtdPalavras = conteudo.split(/\S+/).length - 1;
        $("#contador-palavras").text(qtdPalavras);

        var qtdcaractere = conteudo.length;
        $("#contador-caracteres").text(qtdcaractere);
    });
}

function iniciaCronometro() {
    var tempoRestante = $("#tempo").text();
    campo.one("focus", function () { /*função one ela irá executar somente uma vez o setInterval evitandto que quando o usuario sair do campo não acelerar a contagem */
        var paraDeContar = setInterval(function () {
            tempoRestante--;
            $("#tempo").text(tempoRestante);
            if (tempoRestante < 1) {
                campo.addClass("campo-desativado");
                campo.attr("disabled", true); /*fazendo a contagem parar quando chegar no zero*/
                clearInterval(paraDeContar);
            }

        }, 1000);
    });
}


var frase = $(".frase").text;
campo.on("input", function () {
    var digitado = campo.val();
    var comparavel = frase.substr(0,digitado.length);

    if (digitado == comparavel) {
        campo.addClass("campo-correto");
        campo.removeClass("campo-errado");

    } else {
        campo.addClass("campo-errado");
        campo.removeClass("campo-errado");
    }
});

function reiniciaJogo() { /*função que reiniciar o jogo ao clicar no butão*/
    $("#botao-reiniciar").on("click", function () {
        campo.attr("disabled", false);
        $(".campo-digitacao").val("");
        $("#contador-palavras").text("0");
        $("#contador-caracteres").text("0");
        $("#tempo").text(tempoInicial);
        iniciaCronometro();
        campo.removeClass("campo-desativado");
    });

}

tentei fazer isso:

var comparavel = frase.toString().substr(0,digitado.length);

e mesmo assim não funcionou , como eu conseguiria corrigir isso? fico no aguardo.

3 respostas
solução!

Guilherme,

O erro no seu código está na linha

var frase = $(".frase").text;

O correto é:

var frase = $(".frase").text();

Testa e me fala

vlw conseguir arrumar mais surgiu um pior ainda o bloco condicional não está comparando

Então sugiro você encerrar este tópico, dar como encerrado, e minha resposta como conclusiva e abrir um novo tópico com o código com as correções aplicadas. Desta forma você consegue fazer uma pergunta mais objetiva.