Обнаружив, что не существует метода change
для элементов, который будет вызывать событие change
так же, как метод click
для элементов будет вызывать событие click
, я сейчас ищуспособ вызвать событие, как если бы событие действительно было выполнено. Это означает, что обработчики событий, которые были настроены для обработки события этими способами, должны выполнить:
- Обработчики, связанные с элементом, использующим атрибуты HTML, такие как
onclick
, onchange
, onmousedown
. - Обработчики, прикрепленные к объекту путем установки метода
on*
(т. Е. onclick
, onchange
и т. Д.). - Обработчики, прикрепленные к объекту с использованием
addEventListener
.
В поисках ответа на этот вопрос я обнаружил dispatchEvent
и initEvent
, иногда используемые вместе, но документация для любого из этих методов говорит, что они устарели;Я не знаю, есть ли какая-нибудь более современная замена. Кроме того, это решение должно быть кросс-браузерным.
Если dispatchEvent
/ initEvent
- единственное решение, то я буду его использовать, но я хотел бы знать, почему люди предлагают его, хотяэто "устарело". Если бы я писал стандарты DOM, я бы выглядел так: Element.prototype.doEvent(eventTypeName)
.