Metoda dispatchEvent

Metoda dispatchEvent omogoča simulacijo dogodka na elementu. Zakaj je to potrebno: lahko simulirate pritisk uporabnika na gumb, poskus pošiljanja obrazca in tako naprej. Pri tem se dogodek ne bo razlikoval od pravega po ničemer razen po lastnosti event.isTrusted. Lahko celo ustvarite dogodke z nestandardnimi (vašimi izmišljenimi) imeni in jih nato kličete v pravem trenutku. Metoda se uporablja za element, na katerem želite sprožiti dogodek. Kot parameter metoda prejme dogodek (objekt), ustvarjen s konstruktorjem new Event.

Sintaksa

javascriptelement.dispatchEvent(event);

Primer

Recimo, da imamo gumb. Ob pritisku na ta gumb se izpiše sporočilo. Naredimo tako, da se ob premiku miške na gumb ta gumb 'misli', da so nanj kliknili:

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

button.addEventListener('click', function() {
  alert('sporočilo');
});

button.addEventListener('mouseover', function() {
  let clickEvent = new Event('click'); // ustvarimo dogodek
  this.dispatchEvent(clickEvent); // simuliramo klik na gumb
});

Результат:

Primer

Lahko ustvarite svoje dogodke (s svojim imenom) in jih nato v pravem trenutku kličete. Recimo, da na gumb povežemo dogodek showMessage in ob premiku miške nanj inicializiramo ta dogodek:

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

button.addEventListener('showMessage', function() {
  alert('sporočilo');
});

button.addEventListener('mouseover', function() {
  let showMessageEvent = new Event('showMessage'); // ustvarimo dogodek
  this.dispatchEvent(showMessageEvent); // sprožimo dogodek
});

Результат: