Skip to content

Commit 8c68588

Browse files
remove all Listeners
1 parent 3cf3d8b commit 8c68588

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

src/autocomplete.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ interface Params {
4444

4545
// Internal item
4646
$AjaxTimer: number;
47+
$Listeners: { [_: string]: any; };
4748
}
4849

4950
interface MappingCondition {
@@ -430,6 +431,7 @@ class AutoComplete {
430431
},
431432

432433
$AjaxTimer: null,
434+
$Listeners: {},
433435
};
434436

435437
// Constructor
@@ -486,13 +488,15 @@ class AutoComplete {
486488
params._Position(params);
487489
params.Input.parentNode.appendChild(params.DOMResults);
488490

489-
params.Input.addEventListener("focus", params._Focus.bind(params));
490-
491-
params.Input.addEventListener("keydown", AutoComplete.prototype.event.bind(null, params));
491+
params.$Listeners["focus"] = params._Focus.bind(params);
492+
params.$Listeners["keydown"] = AutoComplete.prototype.event.bind(null, params);
493+
params.$Listeners["blur"] = params._Blur.bind(params);
494+
params.$Listeners["position"] = params._Position.bind(params);
495+
params.$Listeners["destroy"] = AutoComplete.prototype.destroy.bind(null, params);
492496

493-
params.Input.addEventListener("blur", params._Blur.bind(params));
494-
params.Input.addEventListener("position", params._Position.bind(params));
495-
params.Input.addEventListener("destroy", AutoComplete.prototype.destroy.bind(null, params));
497+
for (var event in params.$Listeners) {
498+
params.Input.addEventListener(event, params.$Listeners[event]);
499+
}
496500
} else {
497501
console.log("Element not valid to build a autocomplete");
498502
}
@@ -584,12 +588,10 @@ class AutoComplete {
584588
destroy(params: Params): void {
585589
console.log("Destroy event received", params);
586590

587-
params.Input.removeEventListener("position", params._Position);
588-
params.Input.removeEventListener("focus", params._Focus);
589-
params.Input.removeEventListener("blur", params._Blur);
590-
// params.Input.removeEventListener("keyup", AutoComplete.prototype.event);
591-
params.DOMResults.parentNode.removeChild(params.DOMResults);
591+
for (var event in params.$Listeners) {
592+
params.Input.removeEventListener(event, params.$Listeners[event]);
593+
}
592594

593-
// delete(params);
595+
params.DOMResults.parentNode.removeChild(params.DOMResults);
594596
}
595597
}

0 commit comments

Comments
 (0)