Kaedah dispatchEvent

Kaedah dispatchEvent membolehkan peniruan peristiwa pada elemen. Mengapa ini diperlukan: anda boleh meniru tindakan pengguna menekan butang, percubaan penghantaran borang dan sebagainya. Peristiwa ini tidak akan berbeza dengan peristiwa sebenar kecuali melalui sifat event.isTrusted. Anda juga boleh mencipta peristiwa dengan nama tidak standard (ciptaan anda) dan kemudian memicunya pada masa yang diperlukan. Kaedah ini digunakan pada elemen yang perlu dicetuskan peristiwanya. Parameter kaedah menerima peristiwa (objek), yang dicipta menggunakan pembina new Event.

Sintaks

javascriptelemen.dispatchEvent(event);

Contoh

Katakan kita mempunyai butang. Apabila butang ini ditekan, mesej akan dipaparkan. Mari kita buat supaya apabila tetikus dihalakan ke atas butang butang ini menyangka ia telah diklik:

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

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

button.addEventListener('mouseover', function() {
  let clickEvent = new Event('click'); // mencipta peristiwa
  this.dispatchEvent(clickEvent); // meniru klik pada butang
});

Результат:

Contoh

Anda boleh mencipta peristiwa sendiri (dengan nama sendiri) dan kemudian memicunya pada masa yang diperlukan. Mari ikat peristiwa showMessage kepada butang dan apabila tetikus dihalakan ke atas, mulakan peristiwa ini:

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

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

button.addEventListener('mouseover', function() {
  let showMessageEvent = new Event('showMessage'); // mencipta peristiwa
  this.dispatchEvent(showMessageEvent); // mencetuskan peristiwa
});

Результат: