Komento new Event

Komento new Event on tapahtumien konstruktori, jolla voidaan luoda tapahtumaolio, ja sitten laukaista tämä tapahtuma JavaScriptistä käyttämällä metodia dispatchEvent. Miksi tämä on tarpeen: voidaan matkia käyttäjän painikkeen painamista, lomakkeen lähetysyritystä ja niin edelleen. Tällöin tapahtuma ei eroa aidosta millään tavalla paitsi ominaisuudella event.isTrusted. Voidaan jopa luoda tapahtumia epästandardeilla (keksimilläsi) nimillä ja sitten laukaista ne oikeaan hetkeen.

Syntaksi

javascriptnew Event(tapahtuman tyyppi, [liput]);

Esimerkki

Oletetaan, että meillä on painike. Kun tätä painiketta napsautetaan, näytetään viesti. Tehdään niin, että kun hiiri viedään painikkeen päälle, painike luulee, että sitä on klikattu:

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

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

button.addEventListener('mouseover', function() {
  let clickEvent = new Event('click'); // luodaan tapahtuma
  this.dispatchEvent(clickEvent); // matkitaan painikkeen klikkausta
});

Результат:

Esimerkki

Voit luoda omia tapahtumia (omilla nimillään) ja sitten laukaista ne oikeaan aikaan. Liitetään painikkeeseen tapahtuma showMessage ja kun hiiri viedään painikkeen päälle, käynnistetään tämä tapahtuma:

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

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

button.addEventListener('mouseover', function() {
  let showMessageEvent = new Event('showMessage'); // luodaan tapahtuma
  this.dispatchEvent(showMessageEvent); // laukaistaan tapahtuma
});

Результат:

Katso myös