Я создаю настраиваемое событие в простом javascript и прикрепляю его к элементу DOM. Элемент имеет несколько прослушивателей событий для одного и того же события. Код, который я написал это:Соберите данные из пользовательского обработчика событий в простом Javascript
var element = document.getElementById('demo');
element.addEventListener("myCustomEvent", function(e) {
console.log("myCustomEvent first handler triggered");
});
element.addEventListener("myCustomEvent", function(e) {
console.log("myCustomEvent second handler triggered");
e.data['otherKey'] = 'other value';
return e.data;
});
// Trigger the event
var event = new CustomEvent("myCustomEvent", {
data: {
firstKey: 'first Value'
}
});
element.dispatchEvent(event);
Теперь то, что я хочу есть, получить данные из последнего обработчика событий, как показано ниже:
var modifiedData = element.dispatchEvent(event);
Хотя я знаю, что выше линии не могут быть правильными, но Я хочу что-то подобное. Если я использую jQuery
, есть довольно простая вещь, например, $ .triggerHandler Я могу использовать это, итерации по всем слушателям для конкретного события, и дает возвращаемое значение последнего обработчика, если таковое имеется.
Но я хочу сделать это в чистом Javascript. Есть ли решение для такого рода вещей?
Я занимаюсь разработкой библиотеки, и я не ожидать, что пользователи используют Object.assign. Они могут просто вернуть значение из обработчика, чтобы я мог собрать это значение из диспетчера. –