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

Frage Eventhandling

Gykonik

Mitglied
Hey Leute, ich hab nochmal eine Frage...

Mein Ziel ist es, bei 5 verschiedenen Fällen die gleiche Funktion aufzurufen, nämlich:
  • Wenn eine Taste gedrückt wird (.onkeydown)
  • wenn KnopfA gedrückt wurde
  • wenn KnopfB gedrückt wurde
  • wenn KnopfC gedrückt wurde
  • oder wenn Knopf D gedrückt wurde
Meine Frage wäre nun, wie das möglich ist. Mein Ansatz dabei ist folgender:
Jeden einzelnen Fall kann ich ja einfach so machen
Code:
document.onkeydown = function(e) {
...

Jedoch hab ich noch nicht rausgefunden, wie ich die 5 Fälle miteinander verketten kann, sodass immer function(e) aufgerufen wird.
Meine Idee war in etwa sowas:
Code:
document.onkeydown || document.getElementById('KnopfA').onclick function(e) {


Schonmal Danke im Vorraus!
LG ~ Gykonik
 
Werbung:
Ganz einfach, Du schreibst eine Funktion, z. B.:
Code:
function myOnclick(e) {
    // deine Aktionen
}
und rufst diese auf:
Code:
document.getElementById('KnopfA').onclick(function(e) {myOnclick(e)});
Wenn Du den Parameter e nicht benötigst, ist es noch einfacher:
Code:
document.getElementById('KnopfA').onclick(myOnclick);
 
Werbung:
PS: Ups, ich glaube, da ist mir ein Fehler unterlaufen, weil ich mehr jQuery oder addEventListener verwende: Die Syntax muss bei deinem Verfahren eine Zuweisung sein:
Code:
document.getElementById('KnopfA').onclick = function(e) {myOnclick(e);};
bzw.:
Code:
document.getElementById('KnopfA').onclick = myOnclick;
 
Das hab ich jetzt soweit, jetzt habe ich noch eine Frage.
Wenn ich jetzt bei
Code:
document.getElementById('KnopfA').onclick = function(e) {myOnclick(e);};
für e direkt eine Zahl einsetzten muss hab ich gedacht, dass ich es wiefolgt mache:
Code:
document.getElementById('KnopfA').onclick = function(20) {myOnclick(20);};
Jedoch spuckt mir das Programm dann ein Fehler aus (Unexpected Number)...

(Tut mir leid ich kenne mich mit Javascript nicht soo gut aus... :s )
 
Ja, bei function musst Du in den Klammern für den Parameter einen Bezeichner angeben und keinen nummerischen Wert. Und bei den Eventhandlern sind die Parameter vordefiniert. Du muss das e stehen lassen:
Code:
document.getElementById('KnopfA').onclick = function(e) {myOnclick(20);};
 
Werbung:
Ja, habs grade eben auch selber bemerkt...
schäme mich grade ein bisschen
Aufjedenfall vielen Dank :)

Ich hoffe ich kann dir auch in Zukunft noch ein paar Fragen stellen (Baue grade für meine Website paar Spiele^^)
:)
 
Dann hast Du ja sicher eine interessante Aufgabe mit den Spielen. Melde dich, wenn Du wieder ein Problem hast.
 
Zurück
Oben