dispatchEvent metodu

dispatchEvent metodu element üzərində hadisə yaratmağa imkan verir. Buna nə ehtiyac var: istifadəçinin düyməni basmasını, formanın göndərilmə cəhdini və s. imitasiya etmək olar. Bu zaman hadisə əsl hadisədən event.isTrusted xassəsi istisna olmaqla, heç nə ilə fərqlənməyəcək. Hətta qeyri-standart (tərəfinizdən uydurulmuş) adlarla hadisələr yaradıb, sonra onları lazımi anda çağıra bilərsiniz. Metod, hadisənin çağırılması lazım olan elementə tətbiq edilir. Parametrdə metod, konstruktor vasitəsilə yaradılmış hadisəni (obyekt) qəbul edir new Event.

Sintaksis

javascriptelement.dispatchEvent(event);

Nümunə

Tutaq ki, bizim bir düyməmiz var. Bu düyməni basdıqda bir mesaj çıxır. Gəlin elə edək ki, siçan düymənin üzərinə gətirildikdə bu düymə onun üzərinə klik edildiyini düşünsün:

html<button id="button">düymə</button>
javascriptlet button = document.querySelector('#button');

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

button.addEventListener('mouseover', function() {
  let clickEvent = new Event('click'); // hadisə yaradırıq
  this.dispatchEvent(clickEvent); // düyməyə klik imitasiyası edirik
});

Результат:

Nümunə

Öz hadisələrinizi (öz adınızla) yarada bilərsiniz və sonra lazımi anda onları çağıra bilərsiniz. Gəlin düyməyə showMessage hadisəsini bağlayaq və siçan üzərinə gətirildikdə bu hadisəni işə salaq:

html<button id="button">düymə</button>
javascriptlet button = document.querySelector('#button');

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

button.addEventListener('mouseover', function() {
  let showMessageEvent = new Event('showMessage'); // hadisə yaradırıq
  this.dispatchEvent(showMessageEvent); // hadisənin işləməsini təmin edirik
});

Результат: