dedlfix: Keyup Event Syntax Verständnisproblem

Beitrag lesen

Tach!

Was hast du bereits unternommen, um deine Vermutungen bestätigt oder widerlegt zu bekommen? Wenn der Debugger mir etwas sagen würde, das ich erkennen kann, die Haltepunkte funktionieren nicht. Daraus schließe ich, das es nicht in das Eventhandling läuft.

Es läuft schon viel früher nicht wie geplant. Aber der Reihe nach, aber erstmal eher stichpunkthaft als in ganzen Sätzen: Event wird nicht ausgelöst, Debugger springt nicht bei einem Breakpoint im Eventhandler an. Wird das Setzen des Eventhandlers überhaupt aufgerufen? Breakpoint in die Zeile mit der Zuweisung setzen. Auch kein Anspringen? Der Code wird gar nicht ausgeführt. Aber der <script>-Block wird beachtet? Kontrollausgabe darein schreiben. Wird ausgeführt. Hmm, stimmt was mit dem $(document).ready() nicht?

Die Antwort darauf lautet ja. Das Hauptproblem ist falsche Syntax, die aber keinen Fehler erzeugt, weil sie formal richtig ist.

 $(document).ready()
{
  // ...
}

Du rufst $(document).ready() auf und anschließend hast du einen Block innerhalb der {}-Klammern notiert, der nicht weiter ausgeführt wird. Der Block muss stattdessen der Körper einer Funktion sein, und die musst du mit function() einleiten. Zudem muss diese Funktion als Parameter von ready() übergeben werden.

$(document).ready(function() {
    console.log( "ready!" );
});

So muss das Grundgerüst aussehen, damit das was in dem Funktionskörper steht (hier das console.log), zum Zeitpunkt des Document-Ready-Eregnisses ausgeführt wird. Und nun müssen auch die Breakpoints bremsen.

Und noch ein Punkt: In Javascript ist das Semikolon optional. Das heißt, dass es am Zeilenende in einigen Fällen als implizit vorhanden angenommen wird. Wenn du die {-Klammer nicht in die nächste Zeile geschrieben hättest, hättest du einen Syntaxfehler zu sehen bekommen. Es ist besser, in Javascript den 1TBS-Style zu verwenden, um zumindest eine Fehlerstelle für automatisches Semikolon zu vermeiden.

dedlfix.