Инициировать любой тип события независимо от того, как оно было прикреплено к элементу. - PullRequest
0 голосов
/ 09 ноября 2019

Обнаружив, что не существует метода change для элементов, который будет вызывать событие change так же, как метод click для элементов будет вызывать событие click, я сейчас ищуспособ вызвать событие, как если бы событие действительно было выполнено. Это означает, что обработчики событий, которые были настроены для обработки события этими способами, должны выполнить:

  • Обработчики, связанные с элементом, использующим атрибуты HTML, такие как onclick, onchange, onmousedown.
  • Обработчики, прикрепленные к объекту путем установки метода on* (т. Е. onclick, onchange и т. Д.).
  • Обработчики, прикрепленные к объекту с использованием addEventListener.

В поисках ответа на этот вопрос я обнаружил dispatchEvent и initEvent, иногда используемые вместе, но документация для любого из этих методов говорит, что они устарели;Я не знаю, есть ли какая-нибудь более современная замена. Кроме того, это решение должно быть кросс-браузерным.

Если dispatchEvent / initEvent - единственное решение, то я буду его использовать, но я хотел бы знать, почему люди предлагают его, хотяэто "устарело". Если бы я писал стандарты DOM, я бы выглядел так: Element.prototype.doEvent(eventTypeName).

...