3
respostas

Chamar função com parâmetro dentro de .click()

Aula 4 - Incluí um parâmetro na minha função reiniciarJogo() e passei esse parâmetro na função dentro de .click(). Não deu nenhum erro no console, mas o botão passou a não funcionar mais. Por que?

$(function(){
    atualizaTamanhoFrase();
    inicializaContadores();
    inicializaCronometro();
    $("#botaoReiniciar").click(reiniciarJogo(2));
});

function reiniciarJogo(numero){
    console.log(numero);
    campo.val("");
    campo.attr("disabled", false);
    $("#contadorPalavras").text("0");
    $("#contadorCaracteres").text("0");
    $("#tempoDigitacao").text(tempoInicial);
    inicializaCronometro();
}
3 respostas

Opa, a função click espera uma referencia para função como argumento e, do jeito que você fez, você simplesmente invocou a função e passou o seu retorno para a click.

Entendi. Como eu deveria proceder então caso realmente precisasse passar esse parâmetro para a função reiniciarJogo?

Olá Laura,

Passa uma função anônima que chama sua função

$(function(){
    atualizaTamanhoFrase();
    inicializaContadores();
    inicializaCronometro();
    $("#botaoReiniciar").click(function() {
        reiniciarJogo(2)
    });
});

function reiniciarJogo(numero){
    console.log(numero);
    campo.val("");
    campo.attr("disabled", false);
    $("#contadorPalavras").text("0");
    $("#contadorCaracteres").text("0");
    $("#tempoDigitacao").text(tempoInicial);
    inicializaCronometro();
}

Att.