Команда 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,
    което премахва свързани събития