Skip to content

Commit 2bca46d

Browse files
committed
fix: remove array type event listeners
1 parent 78a3925 commit 2bca46d

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

lib/entity.js

+13-3
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,8 @@ export default class Entity {
330330
}
331331

332332
applyEventBindings() {
333+
this.removeEventBindings()
334+
333335
const el = this.element
334336

335337
// Change binding
@@ -445,8 +447,16 @@ export default class Entity {
445447

446448
removeEventBindings() {
447449
Object.keys(this.listener).forEach((key) => {
448-
const { el, eventName, event } = this.listener[key]
449-
el.removeEventListener(eventName, event)
450+
const listener = this.listener[key]
451+
452+
if (Array.isArray(listener)) {
453+
listener.forEach(({ el, eventName, event }) => {
454+
el.removeEventListener(eventName, event)
455+
})
456+
} else {
457+
const { el, eventName, event } = listener
458+
el.removeEventListener(eventName, event)
459+
}
450460
})
451461
}
452462

@@ -489,7 +499,7 @@ export default class Entity {
489499
unusedVariables.forEach((variable) => {
490500
if (variable.startsWith('el.')) {
491501
const varName = variable.replace('el.', '')
492-
delete window[this.uuid][varName]
502+
if (window[this.uuid]?.[varName]) delete window[this.uuid]
493503
} else {
494504
delete window[variable]
495505
}

0 commit comments

Comments
 (0)