First Commit
This commit is contained in:
17
src/classes/EventManager.ts
Normal file
17
src/classes/EventManager.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
export class EventsManager {
|
||||
events: { target: EventTarget, type: string, handler: EventListenerOrEventListenerObject }[] = [];
|
||||
|
||||
addEvent<K extends keyof DocumentEventMap>(target: EventTarget, type: K, handler: (e: DocumentEventMap[K]) => void) {
|
||||
|
||||
// @ts-expect-error
|
||||
this.events.push({ target, type, handler });
|
||||
// @ts-expect-error
|
||||
target.addEventListener(type, handler);
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this.events.forEach((e) => {
|
||||
e.target.removeEventListener(e.type, e.handler);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user