Resumo : neste tutorial, você aprenderá como criar e despachar eventos programaticamente usando Event
construtor e dispatchEvent()
método.
Normalmente, os eventos são gerados por ações do usuário, como cliques do mouse e pressionamentos de teclas . Além disso, eventos podem ser gerados a partir do código.
Para gerar um evento programaticamente, siga estas etapas:
- Primeiro, crie um novo
Event
objeto usandoEvent
o construtor. - Em seguida, acione o evento usando
element.dispatchEvent()
o método.
Construtor de evento
Para criar um novo evento, você usa o Event
construtor assim:
let event = new Event(type, [,options]);
Linguagem de código: JavaScript ( javascript )
O Event
construtor aceita dois parâmetros:
tipo
é uma string que especifica o tipo de evento, como 'click'
.
opções
é um objeto com duas propriedades opcionais:
bubbles
: é um valor booleano que determina se o evento borbulha ou não. Se fortrue
, o evento será borbulhado e vice-versa.cancelable
: também é um valor booleano que especifica se o evento pode ser cancelado quando fortrue
.
Por padrão, o options
objeto é:
{ bubbles: false, cancelable: false}
Linguagem de código: CSS ( css )
Por exemplo, o seguinte cria um novo click
evento com o options
objeto padrão:
let clickEvent = new Event('click');
Linguagem de código: JavaScript ( javascript )
método despachoEvent
Depois de criar um evento, você pode dispará-lo em um elemento de destino usando o dispatchEvent()
método como este:
element.dispatchEvent(event);
Linguagem de código: CSS ( css )
Por exemplo, o código a seguir mostra como criar o click
evento e acioná-lo em um botão:
HTML:
<button class="btn">Test</button>
Linguagem de código: HTML, XML ( xml )
JavaScript:
let btn = document.querySelector('.btn');
btn.addEventListener('click', function () {
alert('Mouse Clicked');
});
let clickEvent = new Event('click');
btn.dispatchEvent(clickEvent);
Linguagem de código: JavaScript ( javascript )
Clique neste link para ver a demonstração .
Neste exemplo, o manipulador de eventos é executado como se o click
evento fosse gerado por ações do usuário.
Se o evento vier das ações do usuário, a event.isTrusted
propriedade será definida como true
. Caso o evento seja gerado por código, o arquivo event.isTrusted
é false
. Portanto, você pode examinar o valor da event.isTrusted
propriedade para verificar a “autenticidade” do evento.
O Event
é o tipo base UIEvent
que é o tipo base de outros tipos de eventos específicos, como MouseEvent
, TouchEvent
, FocusEvent
e KeyboardEvent
.
É uma boa prática usar o construtor de eventos especializado como MouseEvent em vez de usar o Event
tipo genérico porque esses construtores fornecem mais informações específicas para os eventos.
Por exemplo, o MouseEvent
evento tem muitas outras propriedades, como clientX
e clientY
que especificam as coordenadas horizontais e verticais nas quais o evento ocorreu em relação à janela de visualização:
let clickEvent = new MouseEvent("click", {
bubbles: true,
cancelable: true,
clientX: 150,
clientY: 150
});
Linguagem de código: JavaScript ( javascript )
O link a seguir mostra a lista completa de propriedades do MouseEvent
Resumo
- Use o construtor de evento específico, como
MouseEvent
o método de chamadadispatchEvent()
em um elemento, para gerar um evento a partir do código. - Use
event.isTrusted
para examinar se o evento é gerado a partir de código ou de ações do usuário.