Element Klon Problem


#1
Hallo zusammen,

wir haben aktuell ein Klone Problem.
Wir lassen ein Element klonen und auf einer anderen Seite lassen wir es einfügen.

Unser Element hat folgende Werte:
- onchange (hat eine Funktion)
- data-id

Nun möchten wir dem klonenden Element aber sagen dass er sich Klonen soll, jedoch ohne den Parameter onchange.
Mit einer each-Schleife, prüfen wir ob ein Input, Select oder Textarea entsprechend ein onchnage enthält und entfernen dies.

Soweit Funktioniert es auch.
Allerdings ruft die geklonte Variante immer noch die Funktion im onchange ab, ob dies kein onchange mehr hat.

Nach reichlicher Prüfung und Debugging haben wir fest gestellt, dass er immer das onchange seines Mutterelementes (von dem geklont wurde) das onchange nimmt.

Wir haben dann versucht, dass wir dem geklonten Element die Funktion mit unbind, off, EventListene etc... entfernen können oder stoppen können :(

Leider ohne Erfolg.

Im Internet Explorer (10/11) ruft er die Funktion im onchange auf. Das soll er nicht. :(
Im Google Chrome jedoch macht er es nicht, was auch korrekt ist :)

Kann uns einer hier erklären wo genau das Problem liegt und wie wir das Problem lösen können?

[EDIT]:
Ich habe dass hier jetzt mal Probiert:
Javascript:
$(this).find("select").off("onchange", "select", refresh_value);
Damit scheint es wohl zu funktionieren.

Aber die frage ist, warum geht er dennoch auf das Mutternelement :/
 
Zuletzt bearbeitet:

Quaese

Moderator
Moderator
#2
Hi,

wenn ihr jQuery verwendet, sollte die clone-Methode die Events nicht mitklonen. Eventuell mit den notwendigen Parametern aufrufen, wenn eine Version < 1.5.1 eingesetzt wird.

Javascript:
var clone = $(this).clone(false, false);
Ciao
Quaese
 
#3
Wir verwenden jQuery 3.3.1 :)
Die Frage ist dennoch warum er auf das Mutterelement beim Klonen geht.

Aktuell haben wir es so gemacht wie sich es oben als letztes hinzugefügt habe. :)

Damit funktioniert es aktuell auch :)