Eddie: Liebes Event-Objekt: welcher Link wurde geklickt?

Hallo allerseits,

ich möchte eine Reihe von Links für die Eventverarbeitung mittels JavaScript registrieren. Und zwar so, dass im HTML-Code keine Ereignisbehandlung (z.B. "onClick") mehr stattfinden muss.

Also notiere ich folgendes im JS-Code:

document.{DOM-Pfad}.meinLink1 = start;
   document.{DOM-Pfad}.meinLink2 = start;
   document.{DOM-Pfad}.meinLink3 = start;
   ...

Es wird also immer dieselbe Funktion aufgerufen:

function start(event) {...}

Nur wie kann ich jetzt innerhalb dieser Funktion rausfinden, welcher Link tatsaechlich geklickt wurde?

Danke für eure Hilfe,
Eddie

Nachtrag:
Ich brauche also im Prinzip einen Ersatz für
   HTML: <a onclick="start(3);">mein dritter Link</a>
   JS:   start(nummer_des_Links){...}

--
Old men and far travelers may lie with authority.
  1. Hallo Eddie.

    function start(event) {...}

    Nur wie kann ich jetzt innerhalb dieser Funktion rausfinden, welcher Link tatsaechlich geklickt wurde?

    Mittels „this“, welches im Kontext des Linkes auf ebenselbigen verweist.

    Ich brauche also im Prinzip einen Ersatz für
       HTML: <a onclick="start(3);">mein dritter Link</a>
       JS:   start(nummer_des_Links){...}

    Und wie genau sieht der Inhalt der Funktion „start“ aus? Unter Umständen genügt es schon, darin sämtliche „nummer_des_Links“ durch „this“ zu ersetzen.

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. Hallo Mathias,

      ich bin mir nicht sicher, ob du mich richtig verstanden hast:

      function start(event) {...}
      Mittels „this“, welches im Kontext des Linkes auf ebenselbigen verweist.

      Das wäre der Fall, wenn ich mit onclick arbeiten würde - was ich ja aber nicht tue! Im HTML-Link steht überhaupt kein JavaScript.

      Und wie genau sieht der Inhalt der Funktion „start“ aus?

      Ich kann dir sagen, wie ihre Signatur aussieht:
         function start(event)
      Wenn ein Link geklickt wird, erhält sie nur das Event, nicht den Auslöser (sprich den Link). Die Frage ist, wie ich aus dem Event den Auslöser (also den tatsächlich geklickten Link) schlussfolgern kann.

      Eddie

      --
      Old men and far travelers may lie with authority.
      1. Hallo Eddie.

        function start(event) {...}
        Mittels „this“, welches im Kontext des Linkes auf ebenselbigen verweist.
        Das wäre der Fall, wenn ich mit onclick arbeiten würde - was ich ja aber nicht tue! Im HTML-Link steht überhaupt kein JavaScript.

        Das sieht in deinem Eröffnungungsposting aber anders aus:

        Ich brauche also im Prinzip einen Ersatz für
           HTML: <a onclick="start(3);">mein dritter Link</a>
           JS:   start(nummer_des_Links){...}

        Ich sehe hier eindeutig JS im Link.

        Und wie genau sieht der Inhalt der Funktion „start“ aus?
        Ich kann dir sagen, wie ihre Signatur aussieht:
           function start(event)

        Aha. Und der Inhalt?

        Wenn ein Link geklickt wird, erhält sie nur das Event, nicht den Auslöser (sprich den Link).

        Sie erhält einen Event? So wie ich das oben sehe erhält sie eine numerische Zeichenkette.

        Die Frage ist, wie ich aus dem Event den Auslöser (also den tatsächlich geklickten Link) schlussfolgern kann.

        Wenn du nun einmal den Inhalt von start() preis geben würdest, könnte ich besser beurteilen, ob dir this hier weiterhelfen kann.

        Einen schönen Freitag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. Hallo Mathias,

          erstmal danke dafuer, dass du offenbar genau wie ich immer abends/nachts aktiv bist und mir damit die letzten Tage sehr geholfen hast!

          Aber irgendwie glaube ich, wir reden in diesem Thread gerade aneinander vorbei :-)

          Das sieht in deinem Eröffnungungsposting aber anders aus:

          Ich brauche also im Prinzip einen Ersatz für
             HTML: <a onclick="start(3);">mein dritter Link</a>
             JS:   start(nummer_des_Links){...}

          Ich sehe hier eindeutig JS im Link.

          Das steht deshalb erst am Ende meines Postings (im Nachtrag), weil das der herkoemmliche Weg ist - den ich aber nicht verwenden will, weil ich damit weiterhin HTML und JS vermischen muss.
          Bei der beschriebenen Variante steht das "onclick" nicht zur Verfuegung!
          Der Link sieht also so aus:

          <a id="meinLink3">mein dritter Link</a>

          Dafuer muss ich eine Funktion definieren (mittels JavaScript), die aufgerufen wird, sobald mit dem Link was passiert. Diese Verknuepfung "Funktion/Link" realisiere ich so:

          document.{DOM-Pfad}.meinLink3 = start;

          Erfolgt jetzt eine "Action" an dem Link, so wird automatisch die Funktion start() aufgerufen und ihr der Event übergeben:

          function start(event) {...}

          Und aus diesem Event möchte ich schließen, welcher Link geklickt wurde!
          Vgl. auch http://de.selfhtml.org/javascript/objekte/event.htm,  das Beispiel am Anfang und die Erläuterung.

          Ein Workaround waere folgendes Konstrukt:

          document.{DOM-Pfad}.meinLink3 = startLink3;

          function startLink3(event)
             {
                start(document.{DOM-Pfad}.meinLink3;
             }
             function start(meinLink) {...}

          Pro Link eine eigene Funktion - aber damit bekomme ich einen Wust von Code, schoen ist das nicht...

          Hoffe, das war jetzt etwas klarer verstaendlich, als mein erster Beitrag.
          Gruss,
          Eddie

          --
          Old men and far travelers may lie with authority.
          1. Hallo Eddie.

            Aber irgendwie glaube ich, wir reden in diesem Thread gerade aneinander vorbei :-)

            Ja, was aber hauptsächlich mein Fehler ist.

            Der Link sieht also so aus:

            <a id="meinLink3">mein dritter Link</a>

            Dafuer muss ich eine Funktion definieren (mittels JavaScript), die aufgerufen wird, sobald mit dem Link was passiert. Diese Verknuepfung "Funktion/Link" realisiere ich so:

            document.{DOM-Pfad}.meinLink3 = start;

            Erfolgt jetzt eine "Action" an dem Link, so wird automatisch die Funktion start() aufgerufen und ihr der Event übergeben:

            function start(event) {...}

            Und da ich mich bisher mit dem event–Objekt noch nicht eingehender befasst habe, wusste ich darüber noch nicht sonderlich Bescheid.

            Und aus diesem Event möchte ich schließen, welcher Link geklickt wurde!

            Ich glaube nicht, dass dies möglich ist. Zumindest liefert keine der Eigenschaften des event–Objektes irgendetwas, was den angeklickten Link identifizieren würde.

            Genaueres könnte dir sicher molily sagen; er kennt sich mit dem Eventhandling–Model besser aus.

            (Wenn du nur wenigstens endlich einmal den Inhalt von start() bekannt geben würdest, könnte man vielleicht sagen, ob dein Vorhaben nicht auch anders umsetzbar ist.)

            Einen schönen Samstag noch.

            Gruß, Mathias

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
          2. Der Link sieht also so aus:

            <a id="meinLink3">mein dritter Link</a>

            Dafuer muss ich eine Funktion definieren (mittels JavaScript), die aufgerufen wird, sobald mit dem Link was passiert. Diese Verknuepfung "Funktion/Link" realisiere ich so:

            document.{DOM-Pfad}.meinLink3 = start;

            Was bedeutet das genau?
            Du weist hier einem Objektattribut eine Funktionsreferenz zu. Das klingt erstmal sinnlos, es sei denn das Attribut ist ein Eventhandler.

            Erfolgt jetzt eine "Action" an dem Link, so wird automatisch die Funktion start() aufgerufen und ihr der Event übergeben:

            Was ist "Aktion" warum sagst du nicht einfach was du machst, so läßt sich nur schwer erraten was du willst.

            function start(event) {...}

            Wenn die Aktion mit dem Link verbunden ist, dann ist in start this = link, da allerdings nicht klar ist, wann und wie du start aufrufst ist das nach wie vor Spekulation.

            Und aus diesem Event möchte ich schließen, welcher Link geklickt wurde!

            Ich verstehe dich zwar nicht, vermute aber, dass du evtl. ein document.onclick Event benutzt und dann rausfinden willst ob auf einen Link geklickt wurde, dazu findest du hier mehr:
            http://www.quirksmode.org/js/events_properties.html#target

            Struppi.

            --
            Javascript ist toll (Perl auch!)
            1. Hallo Struppi,

              document.{DOM-Pfad}.meinLink3 = start;

              Was bedeutet das genau?
              Du weist hier einem Objektattribut eine Funktionsreferenz zu. Das klingt erstmal sinnlos, es sei denn das Attribut ist ein Eventhandler.

              Da hast du natuerlich Recht, sorry! Also:

              document.{DOM-Pfad}.meinLink3.onclick = start;

              Was ist "Aktion" warum sagst du nicht einfach was du machst, so läßt sich nur schwer erraten was du willst.

              "Action" ist das, was ein Event auslöst, in diesem Fall also ein Mausklick.
              Benötigt wird das für die Tabs in folgendem Posting:
              http://forum.de.selfhtml.org/my/

              Wird so ein Link geklickt, so soll über die Funktionsreferenz die eigentliche Funktion aufgerufen werden (die natuerlich NICHT "start" heisst). Diese entscheidet dann, welcher Link, sprich welcher Tab, geklickt wurde und aktiviert diesen.

              Ich verstehe dich zwar nicht, vermute aber, dass du evtl. ein document.onclick Event benutzt und dann rausfinden willst ob auf einen Link geklickt wurde, dazu findest du hier mehr:
              http://www.quirksmode.org/js/events_properties.html#target

              Cool, genau das hab ich gesucht!

              Danke dir,
              Eddie

              --
              Old men and far travelers may lie with authority.
              1. document.{DOM-Pfad}.meinLink3 = start;

                Was bedeutet das genau?
                Du weist hier einem Objektattribut eine Funktionsreferenz zu. Das klingt erstmal sinnlos, es sei denn das Attribut ist ein Eventhandler.
                Da hast du natuerlich Recht, sorry! Also:

                document.{DOM-Pfad}.meinLink3.onclick = start;

                Dann ist this in der Funktion start() gleich dem Link.

                Struppi.

                --
                Javascript ist toll (Perl auch!)
            2. Sorry Struppi,

              falsche Posting-Adresse, nimm besser die hier:
              https://forum.selfhtml.org/?t=135162&m=877160

              Eddie

              --
              Old men and far travelers may lie with authority.