Команда 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); // вызываем срабатывание события
});

Результат:

Смотрите также

  • свойство addEventListener,
    которое привязывает события
  • свойство removeEventListener,
    которое отвязывает события