Метад dispatchEvent

Метад dispatchEvent дазваляе імітаваць падзею падзею на элементе. Навошта гэта трэба: можна імітаваць націск карыстальніка на кнопку, спробу адпраўкі формы і гэтак далей. Пры гэтым падзея не будзе адрознівацца ад сапраўднай нічым акрамя ўласцівасці event.isTrusted. Можна нават ствараць падзеі з нестандартнымі (прыдуманымі вамі) назвамі і затым выклікаць іх у патрэбны момант. Метад ужываецца да элемента, на якім трэба выклікаць падзею. У параметры метад атрымлівае падзею (аб'ект), створаную з дапамогай канструктара new Event.

Сінтаксіс

javascriptэлемент.dispatchEvent(event);

Прыклад

Хай у нас ёсць кнопка. Па націску на гэтую кнопку выводзіцца паведамленне. Давайце зробім там, каб пры навядзенні мышой на кнопку гэтая кнопка думала, што па ёй клікнулі:

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

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

button.addEventListener('mouseover', function() {
  let clickEvent = new Event('click'); // ствараем падзею
  this.dispatchEvent(clickEvent); // імітуем клік на кнопку
});

Результат:

Прыклад

Можна ствараць свае падзеі (са сваёй назвай) і потым у патрэбны момант выклікаць іх. Давайце прывязам да кнопкі падзею showMessage і па навядзенні мышой ініцыялізуем гэтую падзею:

html<button id="button">кнопка</button>
javascriptlet button = document.querySelector('#button');

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

button.addEventListener('mouseover', function() {
  let showMessageEvent = new Event('showMessage'); // ствараем падзею
  this.dispatchEvent(showMessageEvent); // выклікаем спрацоўванне падзеі
});

Результат: