djcampi: onclick mit javascript aufrufen

ich habe eine function in javascript geschrieben, die auch funktioniert (mit einem dafür angelegten link getestet)

nun möchte ich, dass alle links in einem div mit der id "referenzen" beim anklicken diese function ausführen. ich habe mehrere dinge versucht, aber komme nicht zu einem ergebnis.

ich hoffe mir kann jemand weiterhelfen,

danke schonmal

  1. Hi,

    ich habe mehrere dinge versucht, aber komme nicht zu einem ergebnis.

    hast Du auch versucht, diese mehreren Dinge und deren Ergebnisse (derer es offensichtlich auch mehrere gibt, da Du ja nicht nur zu einem kommst) jemandem (beispielsweise uns) mitzuteilen, damit Dir eventuelle Fehler genannt werden können?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. z.b. diese funktion hier

      function aufrufen() {
      var test=document.getElementsByTagName("a")[8];
      test.onclick=meineFunktion();
      }

      wobei getElementsByTagName("a")[8] der erste link in dem div ist und ich es erstmal nur mit diesem link versucht habe.

      1. Hi,

          	test.onclick=meineFunktion();  
        

        Hiermit rufst du die Funktion direkt auf, und weist ihren Rückgabewert als onclick-Handler für test zu - das ist vermutlich nicht das, was du willst.
        Stattdessen möchtest du vermutlich nur die Funktionsreferenz zuweisen - also ohne runde Klammern.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
      2. @@djcampi:

        nuqneH

        wobei getElementsByTagName("a")[8] der erste link in dem div ist

        Ach ja?

        Und wenn sich später mal der Seiteninhalt ändert? Dann willst dein Script anpassen müssen? Und es aber vergessen zu tun?

        document.getElementById("referenzen").getElementsByTagName("a")[0] ist (vermutlich) der erste Link in dem 'div'.

        document.getElementById("referenzen").getElementsByTagName("a") ist (vermutlich) das Array mit allen Links in diesem 'div'.

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
        1. Hallo,

          document.getElementById("referenzen").getElementsByTagName("a")[0] ist (vermutlich) der erste Link in dem 'div'.

          document.getElementById("referenzen").getElementsByTagName("a") ist (vermutlich) das Array mit allen Links in diesem 'div'.

          ja, und

          for (var i in linkArray) { linkArray[i].onclick = meineFunktion; }  
          
          

          ist (vermutlich) die gesuchte Lösung.

          Gruß, Don P

          1. for (var i in linkArray) { linkArray[i].onclick = meineFunktion; }

            
            > ist (vermutlich) die gesuchte Lösung.  
              
            Warum willst du allen Eigenschaften, der HTML collection eine onclick Eigenschaft zufügen? Es reicht doch, wenn du diese den Nodes zufügst.  
              
            Also besser einfach so:  
            `for (var i = 0; i < linkArray.length; i++) { linkArray[i].onclick = meineFunktion; }`{:.language-javascript}  
              
            Struppi.
            
            1. Hallo,

              Warum willst du allen Eigenschaften, der HTML collection eine onclick Eigenschaft zufügen? Es reicht doch, wenn du diese den Nodes zufügst.

              Ach ja, eine HTMLcollection hat ja noch mehr Eigenschaften als nur die Nodes, ich vergaß. Bin eben ein Freund von for-in-Schleifen, selbst wenn sie manchmal langsamer sein sollten...

              Also besser einfach so:
              for (var i = 0; i < linkArray.length; i++) { linkArray[i].onclick = meineFunktion; }

              Oder mit meinem geliebeten in dann eben so:
              for (var i = 0; i in linkArray; i++) { linkArray[i].onclick = meineFunktion; }

              Gruß, Don P
              alias Schizo ;-)

  2. Hi,

    nun möchte ich, dass alle links in einem div mit der id "referenzen"

    das darf schon mal nicht sein, id's sind zwingend unique. Du kannst höchstens eine Klasse verwenden und alle Links in einem bestimmten Elternelement prüfen, ob sie diese Klasse besitzen (fertige Funktionen siehe Archiv).

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hi,

      nun möchte ich, dass alle links in einem div mit der id "referenzen"
      das darf schon mal nicht sein, id's sind zwingend unique.

      Das darf schon sein, wenn man 'mit der id "referenzen"' auf das davor stehende DIV und nicht auf die Links bezieht.

      MfG ChrisB

      --
      Light travels faster than sound - that's why most people appear bright until you hear them speak.