Tutorial de JS

JS HOME Introdução JS JS Para onde Saída JS Declarações JS Sintaxe JS Comentários JS Variáveis ​​JS JS Let JS Const Operadores JS JS Aritmética Atribuição de JS Tipos de dados JS Funções JS Objetos JS Eventos JS Strings JS Métodos de string JS Pesquisa de String JS Modelos de String JS Números JS Métodos de número JS Matrizes JS Métodos de matriz JS Classificação de matriz JS Iteração de matriz JS Const da matriz JS Datas JS Formatos de data JS Métodos de obtenção de data JS Métodos de conjunto de datas JS JS Math JS Aleatório JS Booleanos Comparações JS Condições JS Interruptor JS Circuito JS para JS Loop Para Entrada JS Loop Para De JS Loop Enquanto Quebra de JS Iteráveis ​​JS Conjuntos JS Mapas JS Tipo JS de Conversão de tipo JS JS bit a bit JS RegExp Erros JS Escopo JS Içamento JS Modo estrito JS JS esta palavra-chave Função de seta JS Classes JS JS JSON Depuração JS Guia de estilo JS Práticas recomendadas de JS Erros de JS Desempenho JS Palavras reservadas JS

Versões JS

Versões JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Histórico de JS

Objetos JS

Definições de objeto Propriedades do objeto Métodos de objeto Exibição de objetos Acessadores de objetos Construtores de objetos Protótipos de Objetos Iteráveis ​​de objeto Conjuntos de objetos Mapas de objetos Referência do objeto

Funções JS

Definições de função Parâmetros de função Invocação de função Chamada de Função Função Aplicar Fechamentos de Função

Classes JS

Introdução à aula Herança de classe Classe Estática

JS Assíncrono

Retornos de chamada JS JS Assíncrono Promessas JS JS Async/Aguardar

JS HTML DOM

Introdução ao DOM Métodos DOM Documento DOM Elementos DOM HTML DOM Formulários DOM CSS DOM Animações DOM Eventos DOM Ouvinte de eventos DOM Navegação DOM Nós DOM Coleções DOM Listas de nós DOM

BOM do navegador JS

Janela JS Tela JS Localização JS Histórico de JS Navegador JS Alerta pop-up JS Temporização JS Cookies JS

APIs da Web JS

Introdução à API da Web API de formulários da Web API de histórico da web API de armazenamento da Web API do trabalhador da Web API de busca da Web API de geolocalização da Web

JS AJAX

Introdução AJAX AJAX XML Http Solicitação AJAX Resposta AJAX Arquivo XML AJAX PHP AJAX ASP AJAX Banco de dados AJAX Aplicativos AJAX Exemplos AJAX

JS JSON

Introdução JSON Sintaxe JSON JSON x XML Tipos de dados JSON Análise JSON JSON Stringify Objetos JSON Matrizes JSON Servidor JSON JSON PHP HTML JSON JSON JSONP

JS x jQuery

Seletores jQuery HTML jQuery jQuery CSS jQuery DOM

Gráficos JS

Gráficos JS Tela JS JS Plotly JS Chart.js JS Google Chart JS D3.js

Exemplos JS

Exemplos JS JS HTML DOM Entrada HTML JS Objetos HTML JS Eventos HTML JS Navegador JS Editor JS Exercícios JS Teste JS Certificado JS

Referências JS

Objetos JavaScript Objetos HTML DOM


JavaScript HTML DOM EventListener


O método addEventListener()

Exemplo

Adicione um ouvinte de eventos que é acionado quando um usuário clica em um botão:

document.getElementById("myBtn").addEventListener("click", displayDate);

O addEventListener()método anexa um manipulador de eventos ao elemento especificado.

O addEventListener()método anexa um manipulador de eventos a um elemento sem substituir os manipuladores de eventos existentes.

Você pode adicionar muitos manipuladores de eventos a um elemento.

Você pode adicionar muitos manipuladores de eventos do mesmo tipo a um elemento, ou seja, dois eventos de "clique".

Você pode adicionar ouvintes de eventos a qualquer objeto DOM, não apenas a elementos HTML. ou seja, o objeto de janela.

O addEventListener()método torna mais fácil controlar como o evento reage ao borbulhar.

Ao usar o addEventListener()método, o JavaScript é separado da marcação HTML, para melhor legibilidade e permite adicionar ouvintes de eventos mesmo quando você não controla a marcação HTML.

Você pode remover facilmente um ouvinte de eventos usando o removeEventListener()método.


Sintaxe

element.addEventListener(event, function, useCapture);

O primeiro parâmetro é o tipo do evento (como " click" ou " mousedown" ou qualquer outro evento HTML DOM .)

O segundo parâmetro é a função que queremos chamar quando o evento ocorrer.

O terceiro parâmetro é um valor booleano que especifica se deve-se usar borbulhamento de eventos ou captura de eventos. Este parâmetro é opcional.

Observe que você não usa o prefixo "on" para o evento; use " click" em vez de " onclick".


Adicionar um manipulador de eventos a um elemento

Exemplo

Alerta "Olá Mundo!" quando o usuário clica em um elemento:

element.addEventListener("click", function(){ alert("Hello World!"); });

Você também pode consultar uma função externa "nomeada":

Exemplo

Alerta "Olá Mundo!" quando o usuário clica em um elemento:

element.addEventListener("click", myFunction);

function myFunction() {
  alert ("Hello World!");
}


Adicionar muitos manipuladores de eventos ao mesmo elemento

O addEventListener()método permite adicionar muitos eventos ao mesmo elemento, sem substituir os eventos existentes:

Exemplo

element.addEventListener("click", myFunction);
element.addEventListener("click", mySecondFunction);

Você pode adicionar eventos de diferentes tipos ao mesmo elemento:

Exemplo

element.addEventListener("mouseover", myFunction);
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);

Adicionar um manipulador de eventos ao objeto da janela

O addEventListener()método permite adicionar ouvintes de eventos em qualquer objeto HTML DOM, como elementos HTML, o documento HTML, o objeto de janela ou outros objetos que suportam eventos, como o xmlHttpRequestobjeto.

Exemplo

Adicione um ouvinte de eventos que é acionado quando um usuário redimensiona a janela:

window.addEventListener("resize", function(){
  document.getElementById("demo").innerHTML = sometext;
});

Parâmetros de passagem

Ao passar valores de parâmetro, use uma "função anônima" que chame a função especificada com os parâmetros:

Exemplo

element.addEventListener("click", function(){ myFunction(p1, p2); });

Evento borbulhante ou captura de eventos?

Existem duas formas de propagação de eventos no HTML DOM, borbulhar e capturar.

A propagação de eventos é uma maneira de definir a ordem dos elementos quando um evento ocorre. Se você tiver um elemento <p> dentro de um elemento <div> e o usuário clicar no elemento <p>, qual evento "click" do elemento deve ser tratado primeiro?

No borbulhamento , o evento do elemento mais interno é tratado primeiro e depois o externo: o evento de clique do elemento <p> é tratado primeiro, depois o evento de clique do elemento <div>.

Ao capturar o evento do elemento mais externo é tratado primeiro e depois o interno: o evento de clique do elemento <div> será tratado primeiro, depois o evento de clique do elemento <p>.

Com o método addEventListener() você pode especificar o tipo de propagação usando o parâmetro "useCapture":

addEventListener(event, function, useCapture);

O valor padrão é false, que usará a propagação borbulhante, quando o valor for definido como true, o evento usará a propagação de captura.

Exemplo

document.getElementById("myP").addEventListener("click", myFunction, true);
document.getElementById("myDiv").addEventListener("click", myFunction, true);

O método removeEventListener()

O removeEventListener()método remove os manipuladores de eventos que foram anexados com o método addEventListener():

Exemplo

element.removeEventListener("mousemove", myFunction);

Referência de objeto de evento HTML DOM

Para obter uma lista de todos os eventos HTML DOM, consulte nossa Referência completa de objetos de eventos HTML DOM .


Teste-se com exercícios

Exercício:

Use o eventListenerpara atribuir um evento onclick ao <button>elemento.

<button id="demo"></button>

<script>
document.getElementById("demo").("", myFunction);
</script>