Ankündigung

Einklappen
Keine Ankündigung bisher.

DOM mit onClick funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DOM mit onClick funktioniert nicht

    Mein Code:

    Code:
    	var link = document.createElement("a");
    	document.getElementById(tabelle_id).appendChild(link);
    	link.onclick = hinzufuegen(nummer+1);
    	link.href = "#"; 
    	link.innerHTML = "hinzufügen";
    Es soll ein Link erstellt werden. Soweit funktioniert es auch. Der Code befindet sich in der funktion hinzufuegen(nummer). Diese funktion wird beim klick auf einen Link aufgerufen und soll eben nochmal einen Link erzeugen, der diese wieder, aber mit einer anderen Nummer (in diesem fall n+1) aufruft, wenn man draufklickt. Erzeugt wird er, href wird auch hinzugefügt, aber er wehrt sich gegen das onClick. Das wird einfach nicht mit in den Link übernommen. Ich habe also das hier am ende:

    Code:
    <a href="#">hinzufügen</a>
    Wie bekomm ich das gelöst?


  • #2
    link.onclick = hinzufuegen(nummer+1);
    Das ist auch Unsinn. Denn Du weist das Ergebnis der ausgeführten Funktion zu. Versuchs mal mit:

    Code:
    link.onclick = function (nummer) {return hinzufuegen(nummer+1)};
    Noch eher würde ich Dir bspw. zu jQuery raten, die Mechanismen wie live-Query bieten.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Danke dir! So habe ich noch garnicht dran gedacht ...

      JQuery werde ich mir mal anschauen, auch dafür Danke!

      Kommentar


      • #4
        Hallo, ich bins nochmal!

        Beim klicken auf den Link wird - so wie der code oben lautet - die Variable "Nummer" mit einem onClick Event belegt. Der richtige Code muss lauten:

        Code:
        link.onclick = function () {return hinzufuegen(nummer+1)};
        So wird die Variable nicht überschrieben. Nur der vollständigkeit halber.

        Gruß Jan

        Kommentar


        • #5
          Ach so, naja, klar, ein Parameter macht hier generell kaum Sinn. ALlenfalls mit einem Closure, dann müsste nummer viell. der 2. Parameter sein. Dass nummer global ist, war aus dem Ursprungsbeispiel allerdings nicht ersichtlich.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Tipp zum Debuggen: Firebug mit Firequery oder einen Webkit-Browser deiner Wahl => zeigt dir gebundene Eventhandler
            I like cooking my family and my pets.
            Use commas. Don't be a psycho.
            Blog - CoverflowJS

            Kommentar

            Lädt...
            X