T-Rex: DOM Clone - Event Clone?

Moin,

hab da einen Button. Diesem Button ist ein Click Event zugeordnet. Er hat kein onclick sondern per EventListener ein Event. Jetzt möchte ich den Button kopieren -> kein Problem cloneNode. Das Event wird jedoch nicht mit kopiert.

Ich frage mich ob ich doch wieder auf ein onclick ausweichen sollte...
Eure Meinung?

Gruß
heute mal ohne Text zwischen Gruß und Namen (oder auch nicht)
T-Rex

  1. Hi,

    hab da einen Button. Diesem Button ist ein Click Event zugeordnet. Er hat kein onclick sondern per EventListener ein Event. Jetzt möchte ich den Button kopieren -> kein Problem cloneNode. Das Event wird jedoch nicht mit kopiert.

    Ich frage mich ob ich doch wieder auf ein onclick ausweichen sollte...
    Eure Meinung?

    Beschreib genanuer, was du erreichen willst.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Gerne.

      Also folgendes einfaches html konstrukt:
      <input type='button' id='button' />

      und folgendes Javascript:
      addEvent(button,"click",function);

      Ich füge dem html Element mit der id Button ein Event "click" hinzu und wenn das Eintritt soll function ausgeführt werden. Die funktion addEvent benutzt intern den Eventlistener.

      Dann mache ich folgendes:
      newButton = button.cloneNode(true);
      irgendwas.appendChild( newButton );

      Also Html Knoten klonen und wieder ins HTML setzen. Der neue Button hat jetzt das Event aber nicht mehr :(. Ich müsste also folgendes machen:
      addEvent(newButton,"click",function);

      Das Problem ist, dass dies hier nur ein Beispiel war. In Wirklichkeit kann irgend ein Event an irgend einem HTML Knoten (auch Kindknoten) hängen. Sprich ich kopiere einen ganzen HTML Baum und die Elemente können X Events haben.

      Die Einzige Lösung die ich sehe ist ein onclick Attribut, denn das wird mit kopiert. Und so hab ich jetzt auch umgebaut. Dennoch wäre ich an einer hübschen (sauberen) Programmierart interessiert.

      ongruß("T-Rex");

  2. Hallo,

    Beschäftige dich mit Event Delegation. Das heißt, registriere den Handler bei einem gemeinsamen Elternelement anstatt beim Button direkt.

    Mathias