@@ -44,6 +44,7 @@ interface Params {
4444
4545 // Internal item
4646 $AjaxTimer : number ;
47+ $Listeners : { [ _ : string ] : any ; } ;
4748}
4849
4950interface 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