JavaScript EventListener funktioniert nicht richtig?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Das Problem liegt darin, dass du die keypressed Funktion direkt als Event-Handler an das keydown Event anhängst, statt sie als Referenz zu übergeben. Dadurch wird die Funktion sofort beim Laden der Seite ausgeführt und nicht erst, wenn das keydown Event ausgelöst wird. Daher wird die Variable activeLine auf -1 initialisiert und behält diesen Wert bei, da das click Event später ausgeführt wird und activeLine somit nicht aktualisiert wird.

Um das Problem zu beheben, musst du die keypressed Funktion als Referenz übergeben, indem du sie ohne Klammern übergibst:

addEventListener("keydown", keypressed);

Dadurch wird die Funktion als Event-Handler registriert und erst ausgeführt, wenn das keydown Event ausgelöst wird.

Außerdem solltest du sicherstellen, dass ediText definiert und initialisiert ist, bevor du versuchst, darauf zuzugreifen:

let ediText = [];

Mit diesen Änderungen sollte der Code wie erwartet funktionieren.

Woher ich das weiß:Recherche
Milan613  15.04.2023, 08:30

Wird das Event dann aber noch immer als Parameter mit in die Funktion gegeben?Ich hätte so gemacht, kann aber sein dass es bei dir besser funktioniert:

addEventListener('keydown', function(e){
  keypressed(e);
}
0