我正在使用纯Javascript创建自定义事件,并将其附加到DOM元素上。该元素有多个相同的事件监听器。我编写的代码如下:
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中实现它。是否有此类问题的解决方案?
addEventListener
并将处理程序包装到自己的处理程序中。 - Schlaus