Я пытаюсь создать настраиваемое событие в ванильном javascript, но действительно не понимаю, как его вызвать. Насколько я знаю, есть jQuery, метод trigger('customEvent'), но как он сделан в Vanilla JS? Не могу найти никакой информации по этому поводу.
Создание CustomEvent:
var addColor = function (elem) {
elem.classList.add('red');
var event = new CustomEvent('madeRed');
elem.dispatchEvent(event);
};
Прикрепление addEventListener к элементу
var elem = document.querySelector('div');
addColor(elem);
elem.addEventListener('madeRed', function (elem) {
elem.classList.add('color-do-changed');
}, false);
Возможный дубликат Создать пользовательское событие JavaScript



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш код работает нормально, вы просто решили прослушать вызывающее его событие после. Также, если вы хотите передать пользовательские данные, передайте их через деталь. Вы ничего не передали, но ожидали, что параметр события будет вашим элементом.
var elem = document.querySelector('div');
var addColor = function (elem) {
elem.classList.add('red');
var event = new CustomEvent('madeRed', {
detail: {
elem
}
});
elem.dispatchEvent(event);
};
elem.addEventListener('madeRed', function (event) {
event.detail.elem.classList.add('color-do-changed');
}, false);
addColor(elem);.red { color: red }
.color-do-changed { text-decoration: underline }<div>Make me red</div>поэтому для его запуска мне нужно просто вызвать elem.dispatchEvent (event); ?
@ DavidC. Да, вам нужен только второй аргумент, если вы хотите передать некоторые пользовательские данные через
Так в чем ваша настоящая проблема? Кстати, вы отправляете событие перед добавлением прослушивателя событий.