Metodas dispatchEvent

Metodas dispatchEvent leidžia imituoti įvykį elemente. Kam to reikia: galima imituoti vartotojo paspaudimą ant mygtuko, formos pateikimo bandymą ir taip toliau. Tuo pačiu įvykis nebus kuo nors skiriasi nuo tikrojo, išskyrus savybę event.isTrusted. Galima net kurti įvykius su nestandartiniais (jūsų sugalvotais) pavadinimais ir tada iškviesti juos reikiamu momentu. Metodas taikomas elementui, ant kurio reikia iškviesti įvykį. Parametre metodas gauna įvykį (objektą), sukurtą naudojant konstruktorių new Event.

Sintaksė

javascriptelementas.dispatchEvent(įvykis);

Pavyzdys

Tarkime, kad turime mygtuką. Paspaudus ant šio mygtuko išvedamas pranešimas. Padarykime taip, kad užvedus pelės žymeklį ant mygtuko šis mygtukas manytų, kad jis buvo paspaustas:

html<button id="button">mygtukas</button>
javascriptlet button = document.querySelector('#button');

button.addEventListener('click', function() {
  alert('pranešimas');
});

button.addEventListener('mouseover', function() {
  let clickEvent = new Event('click'); // sukuriame įvykį
  this.dispatchEvent(clickEvent); // imituojame paspaudimą ant mygtuko
});

Результат:

Pavyzdys

Galima kurti savus įvykius (su savo pavadinimu) ir vėliau reikiamu momentu juos iškviesti. Susiekime su mygtuku įvykį showMessage ir užvedus pelės žymeklį inicijuokime šį įvykį:

html<button id="button">mygtukas</button>
javascriptlet button = document.querySelector('#button');

button.addEventListener('showMessage', function() {
  alert('pranešimas');
});

button.addEventListener('mouseover', function() {
  let showMessageEvent = new Event('showMessage'); // sukuriame įvykį
  this.dispatchEvent(showMessageEvent); // iškviečiame įvykio suveikimą
});

Результат: