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
});
Результат: