2017-09-20 1 views
0

In Javascript passieren, wenn ich addEventListener verwenden, würde Ich mag eine externe Methode nennen und es Ereignis arg übergeben:javascript addEventListener: Argument zu externen Event-Handler

var secondParam= "titi"; 
element.addEventListener("keydown", handleEventFunc(event, secondParam)); 
    ... 
handleEventFunc: function (eventArg, secondParam) { 
    var key = event.keyCode; 
    var toto = secondParam; 
    //do things 
} 

Es gleichwertig funktionieren würde, wenn ich verwendet haben Verschluss:

var secondParam= "titi"; 
element.addEventListener("keydown", function (event) { 
     var key = event.keyCode; 
     var toto = secondParam; 
     //do things 
} 

Wissen Sie, wie man das macht?

+0

Es ist nicht ** ** Sie wer soll die Funktion ** anrufen **. Es ist der Browser, wenn das Ereignis eintritt. Daher müssen Sie dem Browser eine Funktion zum Anrufen geben. –

Antwort

1

Dies geschieht automatisch, wenn Sie nur Referenz die Funktion, anstatt sie zu fordern, als alle Argumente durch den anrufenden Kontext übergeben werden wird, Handler das Ereignis in diesem Fall

element.addEventListener("keydown", obj.handleEventFunc); 

var obj = { 
    handleEventFunc: function (event) { // tada, now works 
     var key = event.keyCode; // keep the names the same 
     //do things 
    } 
} 
Verwandte Themen