3
respostas

Botao nao funciona

Nao estou conseguindo colocar meu botao pra funcionar,



function validacaoNumero(c) {
    const numero = +c

    if (verificaSeENumero(numero)) {
        elementoChute.innerHTML += '<div> Valor Invalido bro </div>'
    }

    if (verificaSeONumeroEMaiorOuMenor(numero)) {
        elementoChute.innerHTML += `<div> O chute tem que estar entre ${numeroMenor} e ${numeroMaior}<div>`
    }

    if (numero === numeroAleatorio) { // document.body.innerHTML muda todo o documento da tela
        document.body.innerHTML = `  
        <h2> Voce acertou! </h2>
        <h3> O numero secreto era ${numeroAleatorio} ! </h3>

        <button id="jogarBtn" 
        class="jogar-novamente">Atualizar Página</button>
        `
    } else if (numero < numeroAleatorio) {
        elementoChute.innerHTML += `<div class="acertou">O número secreto é maior <i class="fa-solid fa-up-long"></i></div>`
    } else {
        elementoChute.innerHTML += `<div class="acertou">O número secreto é menor <i class="fa-solid fa-up-long"></i></div>`
    }
}

function verificaSeENumero(numero) {
    return Number.isNaN(numero);
}

function verificaSeONumeroEMaiorOuMenor(numero) {
    return numero > numeroMaior || numero < numeroMenor
}

function verificaSeAcertou(numero) {
    return numero === numero
}

document.body.addEventListener('click', e => {
    if (e.target.id == "jogarBtn" ) { //condicao: se existir uma id igual a que eu passei
        window.location.reload()
    }
})
3 respostas

Boa noite. Notei que você não está pondo um return do final dos dois primeiros if's, seria minha primeira sugestão. Caso não seja esse o problema, poderia dizer exatamente o que acontece? O botão "Atualizar Página" é exibido, mas a função não é disparada?

Exatamente ele aparece mas nao dispara. Aparece esse erro no console: Uncaught TypeError: Cannot read properties of null (reading 'addEventListener'). Mas esta tudo de acordo os nomes das ids.

Eu tive um problema parecido e era relacionado a posição das tags scripts. Mas olhando somente pelo código que postou, o que me vem a mente é tentar pegar o id do elemento antes de fazer o addEventListener. Assim também sendo possível fazer um console.log(jogarBtn) pra ter certeza de que o problema é no botão.

const jogarBtn = document.getElementById('jogarBtn');

jogarBtn?.addEventListener('click', () => {
  window.location.reload()
});