2011-01-12 8 views
0

Nachdem in jQuery so viel Zeit, ich bin auf dem altmodischen JS rostig ...das Ereignis über einen aufgesetzten Ereignis-Listener Passing

Die Frage: Wenn ein Ereignis an ein Objekt zugeordnet, die Sie auslösen wollen eine Funktion, wie übergibt man das Ereignis an diese Funktion?

Beispiel Funktion:

myFunction(e){ 
    ... 
} 

Beispiel Ereignis attachment:

document.getElementById('blargh').onkeypress = function(){myfunction([what do I put here to pass the event?])}; 

Antwort

1

Stellen der Handler einen Parameter akzeptieren, sagen event, und an Ihre Funktion übergeben:

document.getElementById('blargh').onkeypress = function(event){myfunction(event)}; 

Die Der Event-Handler ruft immer das aktuelle Ereignis als Parameter ... im W3C-Modell ab.

Für IE müssen Sie den Parameter über window.event erhalten. So wird in der Funktion kann man so etwas schreiben:

function(event) { event = event || window.event; myfuntion(event);} 
+0

Das war schnell! So schnell, dass ich es noch nicht als Antwort akzeptieren kann. Vielen Dank! (Ich werde zurückkommen, um es zu akzeptieren ...) –

1

Sie versuchen arguments verwenden können. Diese Variable wird automatisch im lokalen Bereich ausgefüllt. Es ist ein Array aller Argumente, die an die Funktion übergeben wurden. Wenn Sie arguments an Ihre myfunction übergeben, wird alles, was in den geraden Handler übergeben wurde, als ein Array an myfunction übergeben.

document.getElementById('blargh').onkeypress = function(){myfunction(arguments)}; 

function myfunction(args) 
{ 
    alert(args[0]); 
} 
Verwandte Themen