Fabian Transchel: DOM-Eventhandling: parameter übergeben?

moin forum,
will meine homepage auf XHTML umstellen, deswegen musste ich mich von den Standard-Eventhandlern (onClick etc.) verabschieden.

jetzt hab ich in SelfHTML gelesen, wie das mit den DOM-Events geht.

also quasi das hier: document.on_eventname_ = Auswertung;

nun meine frage: wie kann ich da parameter übergeben?

(begründung für die frage:
document.on_eventname_ = Auswertung(parameter1,parameter2); geht nicht!)

muss ich für _jeden_ Eventhandler eine extra-Funktion definieren?

ich habe sonst über die eventhandler etwas in der art "menueon(button,popup);" aufgerufen. wie geht das im DOM-Modell?

Fabian

ps: ich würd mich ja nicht aufregen, wenn der validator nicht meckern würde ;-)

  1. moin forum,

    Tach

    will meine homepage auf XHTML umstellen, deswegen musste ich mich von den Standard-Eventhandlern (onClick etc.) verabschieden.

    Non sequitur.
    onclick gibt es auch in XHTML, nur halt mit kleinem c, weil in XHTML alle Attributnamen kleingeschrieben werden.

    jetzt hab ich in SelfHTML gelesen, wie das mit den DOM-Events geht.
    also quasi das hier: document.on_eventname_ = Auswertung;
    nun meine frage: wie kann ich da parameter übergeben?

    Gar nicht.
    Eventhandler werden ja nicht von Dir aufgerufen, sondern vom Browser.

    ps: ich würd mich ja nicht aufregen, wenn der validator nicht meckern würde ;-)

    Wenn Du Dich nicht an die Regeln von XHTML hältst (Kleinschreibung von Attributnamen), bist Du doch selber schuld, wenn Du angemeckert wirst.
    Andreas

    1. moin Andreas,

      Non sequitur.
      onclick gibt es auch in XHTML, nur halt mit kleinem c, weil in XHTML alle Attributnamen kleingeschrieben werden.

      tja, da sieht man den Wald vor lauter Bäumen nicht. Alles hab ich umgeschrieben, aber ich dachte halt, da JS case-sensitive ist, darf ich das nicht ändern. Und schon hab ichs übersehen :(

      ps: ich würd mich ja nicht aufregen, wenn der validator nicht meckern würde ;-)

      Wenn Du Dich nicht an die Regeln von XHTML hältst (Kleinschreibung von Attributnamen), bist Du doch selber schuld, wenn Du angemeckert wirst.

      allerdings.

      Andreas

      Fabian

      1. Tach,

        tja, da sieht man den Wald vor lauter Bäumen nicht. Alles hab ich umgeschrieben, aber ich dachte halt, da JS case-sensitive ist, darf ich das nicht ändern. Und schon hab ichs übersehen :(

        Ja und, was hat Javascript mit dem (X)HTML-Attribut onclick zu tun?
        (mal abgesehen davon, daß der Attributwert Javascript ist, falls die default-Scriptsprache der Seite Javascript ist).

        Andreas

  2. Moin,

    nun meine frage: wie kann ich da parameter übergeben?

    Das was du beschrieben hast, sind zwar noch keine DOM-Events, aber du kannst bei beidem keine Parameter übergeben.

    muss ich für _jeden_ Eventhandler eine extra-Funktion definieren?

    Nein. Dein Eventhandler bzw. -listener bekommt ein Objekt übergeben das allerlei nützliche Informationen vorhält. Unter anderem auch den Typ des Events welches ausgelöst wurde (im type-Attribut) und auch das Element-Objekt auf den das Event gerichtet wurde (im target-Attribut), ja sogar das Element-Objekt dessen Eventhandler/-Listener aufgerufen wurde (im currentTarget-Attribut).

    Dazu steht auch schon einiges im Archiv. Wenn du genauer sagst, welche Parameter du übergeben willst, kann man vielleicht noch genaueres sagen.

    --
    Henryk Plötz
    Grüße aus Berlin

    1. Moin,

      moin

      nun meine frage: wie kann ich da parameter übergeben?

      Das was du beschrieben hast, sind zwar noch keine DOM-Events, aber du kannst bei beidem keine Parameter übergeben.

      _was_ sind denn "richtige" DOM-Events?

      muss ich für _jeden_ Eventhandler eine extra-Funktion definieren?

      Nein. Dein Eventhandler bzw. -listener bekommt ein Objekt übergeben das allerlei nützliche Informationen vorhält. Unter anderem auch den Typ des Events welches ausgelöst wurde (im type-Attribut) und auch das Element-Objekt auf den das Event gerichtet wurde (im target-Attribut), ja sogar das Element-Objekt dessen Eventhandler/-Listener aufgerufen wurde (im currentTarget-Attribut).

      gut zu wissen, aber ich baruche es jetzt erstmal nicht mehr. Danke.

      Dazu steht auch schon einiges im Archiv. Wenn du genauer sagst, welche Parameter du übergeben willst, kann man vielleicht noch genaueres sagen.

      ich wollte eigentlich eine Funktion aufrufen, aber brauche ich nicht mehr, siehe Andreas' Antwort.

      --
      Henryk Plötz
      Grüße aus Berlin

      Fabian

      1. Moin,

        _was_ sind denn "richtige" DOM-Events?

        Das da: http://selfhtml.teamone.de/dhtml/modelle/dom.htm#event_handling (siehe auch http://forum.de.selfhtml.org/archiv/2002/7/17331/#m98778) bzw. offiziell in http://www.w3.org/TR/DOM-Level-2-Events/.

        --
        Henryk Plötz
        Grüße aus Berlin

    2. Hi Henryk.

      .. aber du kannst bei beidem keine Parameter übergeben.

      Das kann ich so nicht stehen lassen. Es fällt mir zwar kein Grund ein, unbedingt so was zu konstruieren, aber es geht:

      function checkArguments(keyEvent,para2)
       {
       keyEvent=(window.event)? window.event : keyEvent;
       alert("Parameter: "+para2+"\nEventart: "+keyEvent.type);
       }

      document.onmousedown=Function("checkArguments(arguments[0],'Test')")

      lg Spiff

      1. Moin,

        Das kann ich so nicht stehen lassen. Es fällt mir zwar kein Grund ein, unbedingt so was zu konstruieren, aber es geht:

        Danke für die Korrektur. Ich hab auch kurz darüber nachgedacht, weil ich ein ähnliches Konstrukt aus PHP kenne, hätte aber nicht geglaubt, dass Javascript so etwas auch hat und hab daher nicht danach gesucht.

        document.onmousedown=Function("checkArguments(arguments[0],'Test')")

        ^ muss da nicht noch ein new davor?

        --
        Henryk Plötz
        Grüße aus Berlin

        *** Help Microsoft combat software piracy: Give Linux to a friend today! ***