javascript - titel - title tag länge 2018



Wie kopiert man einen DOM-Knoten mit Event-Listenern? (1)

cloneNode() kopiert keine Ereignislistener. In der Tat gibt es keine Möglichkeit, Ereignis-Listener über das DOM zu erhalten, sobald sie hinzugefügt wurden. Ihre Optionen sind also:

  • Fügen Sie alle Ereignislistener manuell zu Ihrem geklonten Knoten hinzu
  • Refactorieren Sie Ihren Code so, dass die Ereignisdelegierung verwendet wird, damit alle Ereignishandler einem Knoten zugeordnet werden, der sowohl das Original als auch den Klon enthält
  • Verwenden Sie eine Wrapper-Funktion um Node.addEventListener() , um die zu jedem Knoten hinzugefügten Listener zu verfolgen. Auf diese Weise kann die Methode clone() jQuery zum Beispiel einen Knoten mit seinen Ereignislistenern kopieren.

Ich habe es versucht

node.cloneNode(true); // deep copy

Es scheint nicht die Ereignislistener zu kopieren, die ich mit node.addEventListener("click", someFunc); hinzugefügt node.addEventListener("click", someFunc); .

Wir verwenden die Dojo-Bibliothek.





dojo