English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A mais recente funcionalidade do manipulador de eventos do JavaScript é o ouvinte de eventos. O ouvinte de eventos monitora eventos no elemento.
Vamos usaraddEventListener()para substituir a atribuição direta de eventos a propriedades do elemento.
addEventListener()O método adiciona o manipulador de eventos ao elemento especificado.
Podemos reescrever o exemplo de cor aleatória (do capítulo anterior), conforme mostrado a seguir:
document.querySelector("button").addEventListener("click", bgChange); function bgChange() { let color = "rgb(" + random(255) + ", + random(255) + ", + random(255) + )"); document.body.style.backgroundColor = color; }Teste e veja‹/›
Ainda estamos usando comanteriorigualbgChange()Função. VamosaddEventListener()Método anexado ao botão.
addEventListener() Aceita dois parâmetros obrigatórios-O evento a ser monitorado e a função de callback do ouvinte.
Este método é semelhante ao atributo do manipulador de eventos (no capítulo anterior), mas a sintaxe é claramente diferente.
element.addEventListener(event, listener, useCapture)
O primeiro parâmetro é o tipo do evento (por exemplo, 'click' ou 'mousemove').
O segundo parâmetro é a função de ouvinte que chamamos quando o evento ocorrer.
O terceiro parâmetro é um valor booleano que especifica se deve usar o bubbling de eventos ou a captura de eventos. Este parâmetro é opcional.
Atenção, não use o prefixo "on" para eventos. Use "click" em vez de "onclick".
Atenção, coloque todo o código dentro deaddEventListener()É muito apropriado usar funções anônimas dentro de métodos, conforme mostrado a seguir:
let para = document.querySelector("#para"); para.addEventListener("click", function() { this.innerHTML = "Hello world"; });Teste e veja‹/›
Você ainda pode chamar funções "nomeadas" externas:
let para = document.querySelector("#para"); para.addEventListener("click", changeText); function changeText() { para.innerHTML = "Hello world"; }Teste e veja‹/›
A primeira vista, o ouvinte de eventos parece muito semelhante às propriedades de manipulador de eventos, mas elas têm algumas vantagens. Podemos configurar vários ouvintes de eventos no mesmo elemento, como mostrado no exemplo a seguir:
document.querySelector("button").addEventListener("click", myFunc); document.querySelector("button").addEventListener("click", anotherFunc);Teste e veja‹/›
Adicionar múltiplos ouvintes de eventos ao mesmo elemento
Podemos adicionar diferentes tipos de eventos ao elemento:1document.querySelector("button").addEventListener("mouseout", myFunc document.querySelector("button").addEventListener("mouseenter", myFunc2document.querySelector("button").addEventListener("mouseout", myFunc document.querySelector("button").addEventListener("click", myFunc3document.querySelector("button").addEventListener("mouseout", myFuncTeste e veja‹/›
Passar parâmetros
Ao passar valores de parâmetro, use uma função anônima que chama a função especificada com os parâmetros: var btn = document.querySelector("button"); btn.addEventListener("click", function() { });Teste e veja‹/›
adicionar ouvintes de eventos ao objeto WindowaddEventListener()Além disso, você podeDocumentoeJanelano objeto.
Este exemplo utiliza o seguinteaddEventListener()O método adiciona o evento de clique (click) ao documento:
document.addEventListener("click", function() { alert("Hello World!!!"); });Teste e veja‹/›
Este exemplo utiliza oaddEventListener()O método adiciona o evento de redimensionamento (resize) ao objeto janela:
window.addEventListener("resize", function() { box.innerHTML = Math.random(); });Teste e veja‹/›
Atualmente, o monitoramento de eventos é a maneira mais comum e preferida de lidar com eventos em JavaScript.
Também pode usar aremoveEventListener()O método remove um ou todos os eventos de um elemento.
var box = document.getElementById("para"); // Anexe um manipulador de evento a um elemento P com id="para" box.addEventListener("mousemove", myFunc); // Remova o manipulador de evento de um elemento P com id="para" box.removeEventListener("mousemove", myFunc);Teste e veja‹/›
O primeiro parâmetro é o tipo do evento (por exemplo, 'click' ou 'mousemove').
O segundo parâmetro é a função que chamamos quando o evento ocorre.
Referência JavaScript:Referência do objeto de evento HTML DOM