Metoda dispatchEvent

Metoda dispatchEvent omogućava simuliranje događaja na elementu. Zašto je ovo potrebno: moguće je simulirati pritisak korisnika na dugme, pokušaj slanja forme i tako dalje. Pritom se događaj neće razlikovati od pravog ni po čemu osim po svojstvu event.isTrusted. Moguće je čak kreirati događaje sa nestandardnim (izmišljenim) nazivima i zatim ih pozivati u pravi trenutak. Metoda se primenjuje na element na kom je potrebno pokrenuti događaj. U parametru metoda prima događaj (objekat), kreiran pomoću konstruktora new Event.

Sintaksa

javascriptelement.dispatchEvent(event);

Primer

Neka imamo dugme. Klikom na ovo dugme prikazuje se poruka. Hajde da učinimo tako da pri prelasku mišem preko dugmeta ovo dugme misli da je na njega kliknuto:

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

button.addEventListener('click', function() {
  alert('poruka');
});

button.addEventListener('mouseover', function() {
  let clickEvent = new Event('click'); // kreiramo događaj
  this.dispatchEvent(clickEvent); // simuliramo klik na dugme
});

Результат:

Primer

Moguće je kreirati sopstvene događaje (sa sopstvenim nazivom) i zatim ih u pravi trenutak pozivati. Hajde da vežemo za dugme događaj showMessage i pri prelasku mišem pokrenemo ovaj događaj:

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

button.addEventListener('showMessage', function() {
  alert('poruka');
});

button.addEventListener('mouseover', function() {
  let showMessageEvent = new Event('showMessage'); // kreiramo događaj
  this.dispatchEvent(showMessageEvent); // pokrećemo okidanje događaja
});

Результат: