• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Eventlistener funktioniert nicht?

Willibergi

Mitglied
Moin,
hier mein erster Code:
document.onkeypress = function(event){
if(event.keyCode == 32){
//Auszuführender Code
}
return event.returnValue;
};

... und hier mein zweiter Code:
document.addEventListener('keypress',function(event){
if(event.keyCode == 32){
//Auszuführender Code
}
return event.returnValue;
},false);

Das Problem ist, dass der erste Code funktioniert, der zweite aber nicht. Die beiden unterscheiden sich aber nicht wirklich, nur dass beim zweiten Code die Methode addEventListener() verwendet wird. Warum funktioniert also der erste, aber der zweite nicht?
Ich hoffe, ihr könnt mir helfen.
LG Willibergi
 
Wohl eher umgekehrt. onkeypress ist eine Methode des Window Objects. Document besitzt die nicht, deshalb muss diese mit addEventListener erst gebunden werden. Gib mal in der Chrome Console window und document ein. Dann siehst du, was da jeweils dranhängt.

Abgesehen davon würde ich statt keypress lieber keydown nehmen und event.returnValue war etwas für uralte IEs. Wenn du dir den Einstieg in JavaScript um den Faktor 10 vereinfachen willst, dann verwende jQuery. Das deckt 90% aller JS Funktionen für normale Webseiten ab.
 
Ich habe den Code jetzt folgendermaßen geändert:
document.addEventListener('keydown', function(event){
//auszuführender Code
},false);

Er funktioniert aber leider immer noch nicht. Was mache ich falsch?
 
Code:
document.addEventListener('keydown', function() {
  alert('hi');
});

und wieso willst du das Event an document binden? Das gehört zum Window Object.
 
Zurück
Oben