Каманда new Event

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

Сінтаксіс

javascriptnew 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</button>
javascriptlet button = document.querySelector('#button');

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

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

Результат:

Глядзіце таксама