Alex: Welcher Event ist der Richtige

Hallo,

ich will einige Event-Handler an ein paar Formularkomponenten registrieren. Um den Code sauber zu halten, will ich das mit der addEventListener Funktion machen.

Ich habe das bisher so probiert, dass ich die Funktion die die Handler registriert mittels einem

document.onload = init();

aufgerufen hab. Allerdings exisitert scheinbar zu diesem Zeitpunkt das Forumlar noch nicht.
Ich bin eigentlich davon ausgegengen, dass der Event erst kommt wenn das Formular fertig geladen ist.

Scheinbar ist das nicht so.

Was kann ich stattdessen tun ?? Ich finde irgendwie keinen Ansatzpunkt.

MfG

Alex

  1. document.onload = init();

    Was kann ich stattdessen tun ?? Ich finde irgendwie keinen Ansatzpunkt.

    ich vermute jetzt einmal, dass du eigentlich doch JavaScript und nicht JAVA meinst? Dann wäre das Weglassen der Klammer hinter init ein Ansatzpunkt.

    1. document.onload = init();

      Was kann ich stattdessen tun ?? Ich finde irgendwie keinen Ansatzpunkt.

      ich vermute jetzt einmal, dass du eigentlich doch JavaScript und nicht JAVA meinst? Dann wäre das Weglassen der Klammer hinter init ein Ansatzpunkt.

      Richtig ..es ist eigentlich Javascript gemeint - hab mich verklickt.

      das Weglassen der Klammern funktioniert tatsächlich. Kann mir auch erklärt werden, warum ? Mir fehlt da scheinbar ein Zusammenhang..

      Alex

      1. Hi,

        document.onload = init();

        das Weglassen der Klammern funktioniert tatsächlich. Kann mir auch erklärt werden, warum ? Mir fehlt da scheinbar ein Zusammenhang..

        init ist die Referenz auf die Funktion. Saemtliche Objekte - und auch Funktionen sind Objekte - werden in Javascript "by reference" uebergeben, nur skalare Werte (bspw. Textliterale, Zahlen) "by value". (by reference uebergibt also nur eine Art "Zeiger" auf das Objekt, "by value" wird hingegen eine Kopie des Wertes uebergeben.)

        init() ruft die Funktion zu exakt dem Zeitpunkt auf, wo diese Anweisung steht.
        document.onload = init();
        bewirkt also, dass erst mal die Funktion aufgerufen wird - und dann ihr Rueckgabewert document.onload zugewiesen wird.

        document.onload = init;
        hingegen weist dem Event die Funktionsreferenz zu - damit weiss dein Browser also, wenn dieser Event eintritt, soll er den Code ausfuerhen, auf den der Funktionsname init referenziert.

        MfG ChrisB

        1. init() ruft die Funktion zu exakt dem Zeitpunkt auf, wo diese Anweisung steht.
          document.onload = init();
          bewirkt also, dass erst mal die Funktion aufgerufen wird - und dann ihr Rueckgabewert document.onload zugewiesen wird.

          document.onload = init;
          hingegen weist dem Event die Funktionsreferenz zu - damit weiss dein Browser also, wenn dieser Event eintritt, soll er den Code ausfuerhen, auf den der Funktionsname init referenziert.

          MfG ChrisB

          Verstehe - Besten Dank!

          MfG Alex