diff --git a/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/EventInterface.ts b/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/EventInterface.ts index 34204cad8525c16d1a0022b0def08fbe3e671c14..63cada62f6dcf8100715e4a3cd95d6e905d963e5 100644 --- a/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/EventInterface.ts +++ b/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/EventInterface.ts @@ -11,7 +11,11 @@ * The TYPO3 project - inspiring people to share! */ -export type Listener = Function & EventListenerOrEventListenerObject; +export type Listener = Function & (EventListenerWithTarget | EventListener | EventListenerObject); + +export interface EventListenerWithTarget { + (evt: Event, target?: Element): void; +} export interface EventInterface { bindTo(element: EventTarget): void; diff --git a/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/RegularEvent.ts b/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/RegularEvent.ts index 4eba02c7eed9fab74666a8d6c6bd0279f353a216..7000a07407503ec43be251ae2ff9b11c8caa0ce9 100644 --- a/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/RegularEvent.ts +++ b/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/RegularEvent.ts @@ -33,7 +33,7 @@ class RegularEvent implements EventInterface { element.addEventListener(this.eventName, (e: Event): void => { for (let targetElement: Node = <Element>e.target; targetElement && targetElement !== this.boundElement; targetElement = targetElement.parentNode) { if ((<HTMLElement>targetElement).matches(selector)) { - this.callback.call(targetElement, e); + this.callback.call(targetElement, e, targetElement); break; } } diff --git a/typo3/sysext/core/Resources/Public/JavaScript/Event/RegularEvent.js b/typo3/sysext/core/Resources/Public/JavaScript/Event/RegularEvent.js index 1af7ed3457ed7b92abf296ced78a0f889ffe9fb7..4020843ddc5fb94c2d11002c9beb9872f1ce250b 100644 --- a/typo3/sysext/core/Resources/Public/JavaScript/Event/RegularEvent.js +++ b/typo3/sysext/core/Resources/Public/JavaScript/Event/RegularEvent.js @@ -10,4 +10,4 @@ * * The TYPO3 project - inspiring people to share! */ -define(["require","exports"],(function(e,t){"use strict";return class{constructor(e,t){this.eventName=e,this.callback=t}bindTo(e){this.boundElement=e,e.addEventListener(this.eventName,this.callback)}delegateTo(e,t){this.boundElement=e,e.addEventListener(this.eventName,e=>{for(let n=e.target;n&&n!==this.boundElement;n=n.parentNode)if(n.matches(t)){this.callback.call(n,e);break}},!1)}release(){this.boundElement.removeEventListener(this.eventName,this.callback)}}})); \ No newline at end of file +define(["require","exports"],(function(e,t){"use strict";return class{constructor(e,t){this.eventName=e,this.callback=t}bindTo(e){this.boundElement=e,e.addEventListener(this.eventName,this.callback)}delegateTo(e,t){this.boundElement=e,e.addEventListener(this.eventName,e=>{for(let n=e.target;n&&n!==this.boundElement;n=n.parentNode)if(n.matches(t)){this.callback.call(n,e,n);break}},!1)}release(){this.boundElement.removeEventListener(this.eventName,this.callback)}}})); \ No newline at end of file