일반 자바 스크립트로 사용자 지정 이벤트를 만들고이를 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과 같은 매우 간단한 것이 있습니다. 특정 이벤트에 대한 모든 리스너를 반복하고 사용할 수있는 경우 마지막 핸들러의 반환 값을 제공합니다.
하지만 순수한 자바 스크립트로하고 싶습니다. 그런 종류의 것에 대한 해결책이 있습니까?
나는 사용자가 Object.assign를 사용하는 기대하지 않는다 : 당신이 할 바라고 무엇을 얻을 수 있습니다. 그들은 핸들러에서 값을 반환하여 발송자로부터 그 값을 수집 할 수 있습니다. –