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

addEventListener() não funciona...

Oi pessoal, tudo bem? Tenho esse trecho de código:

var titulo = document.querySelector("h1").textContent;
  titulo.addEventListener("click", mostraMensagem());

  function mostraMensagem(){
    console.log("Cliquei no título: " + titulo);
  }

Quando vou recarregar a página, aparece esse erro no console:

Uncaught TypeError: titulo.addEventListener is not a function

Alguém pode me responder por que EventListener() não está sendo considerado uma função? Muito obrigado!!!

3 respostas
solução!

Boa tarde, Luiz! Como vai?

Esse problema está ocorrendo pq a sua variável titulo está armazenando o conteúdo textual da tag h1 e o addEventListener() é um método que pertence à elementos HTML! Portanto, o correto seria fazer assim:

var titulo = document.querySelector("h1");  // agora a variável irá armazenar o elemento h1
titulo.addEventListener("click", mostraMensagem);

function mostraMensagem(){
    console.log("Cliquei no título: " + titulo);
}

Um outro detalhe é que na segunda linha do código vc faz titulo.addEventListener("click", mostraMensagem()). Só que isso também não está correto pois ao utilizar os parênteses após o nome da função mostraMensage vc automaticamente irá invocá-la! Quando na realidade o que vc quer é cadastrar ela como callback do evento de click. Dessa forma, o correto é fazer como eu fiz no código que estou te mandando nessa minha resposta!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Perfeito! Muito obrigado Gabriel!!!

Por nada, Luiz! Sempre que tiver qualquer dúvida é só mandar aqui no fórum da Alura!

Grande abraço, 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