Metode dispatchEvent

Metode dispatchEvent ļauj imitēt notikumu uz elementa. Kāpēc tas ir vajadzīgs: var imitēt lietotāja klikšķi uz pogas, formas iesniegšanas mēģinājumu un tā tālāk. Šajā gadījumā notikums neatšķirsies no īstā, izņemot īpašību event.isTrusted. Var pat izveidot notikumus ar nestandarta (jums izdomātiem) nosaukumiem un pēc tam izsaukt tos vajadzīgajā brīdī. Metode tiek piemērota elementam, uz kura vajadzīgs izraisīt notikumu. Parametrā metode saņem notikumu (objektu), kas izveidots, izmantojot konstruktoru new Event.

Sintakse

javascriptelement.dispatchEvent(event);

Piemērs

Pieņemsim, ka mums ir poga. Noklikšķinot uz šīs pogas, tiek parādīts ziņojums. Izveidosim tā, lai, novedot peles kursoru virs pogas, šī poga domātu, ka uz tās ir noklikšķināts:

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

button.addEventListener('click', function() {
  alert('ziņojums');
});

button.addEventListener('mouseover', function() {
  let clickEvent = new Event('click'); // izveidojam notikumu
  this.dispatchEvent(clickEvent); // imitējam klikšķi uz pogas
});

Результат:

Piemērs

Var izveidot savus notikumus (ar savu nosaukumu) un pēc tam vajadzīgajā brīdī tos izsaukt. Piešķirsim pogai notikumu showMessage un novedot peles kursoru, inicializēsim šo notikumu:

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

button.addEventListener('showMessage', function() {
  alert('ziņojums');
});

button.addEventListener('mouseover', function() {
  let showMessageEvent = new Event('showMessage'); // izveidojam notikumu
  this.dispatchEvent(showMessageEvent); // izsaucam notikuma iedarbināšanu
});

Результат: