Sobald neues Element erstellt wird, funktioniert kein Javascript

10/18/2018 01:43 Cc_Cc_Cc#1
Hi,

sobald ich ein neues Element erstelle, funktioniert keine Javascript Funktion. Hat einer Ahnung woran das liegt?

Bsp:

Ich habe kein Profilbild drinne. Ich lade eins Hoch. Nachdem es erfolgreich hochgeladen wurde, soll ein Element erstellt werden wo steht: Foto entfernen. Wenn ich jetzt draufklicke passiert nichts. Er gibt mir nicht mal alert('hallo') aus.

So sieht es aus:

[Only registered and activated users can see links. Click Here To Register...]
Javascript
10/18/2018 12:12 florian0#2
Das Problem ist, das dein JavaScript Click Handler nicht automatisch auf alle .delete_foto_092 hinzugefügt wird, sondern nur auf die, die zum Zeitpunkt des Aufrufs bereits existieren. Wenn du nachträglich ein neues Element hinzufügst, hat das keinen Click Handler.

> [Only registered and activated users can see links. Click Here To Register...]

Code:
var newbutton = document.createElement('button');
// ...

// JQuery Solution
$(newbutton).on("click", onnewbutton);

// Pure JS Solution
newbutton.addEventListener("click", onnewbutton);
Mit Lösung:
> [Only registered and activated users can see links. Click Here To Register...]
10/18/2018 15:59 Cc_Cc_Cc#3
Quote:
Originally Posted by florian0 View Post
Das Problem ist, das dein JavaScript Click Handler nicht automatisch auf alle .delete_foto_092 hinzugefügt wird, sondern nur auf die, die zum Zeitpunkt des Aufrufs bereits existieren. Wenn du nachträglich ein neues Element hinzufügst, hat das keinen Click Handler.

> [Only registered and activated users can see links. Click Here To Register...]

Code:
var newbutton = document.createElement('button');
// ...

// JQuery Solution
$(newbutton).on("click", onnewbutton);

// Pure JS Solution
newbutton.addEventListener("click", onnewbutton);
Mit Lösung:
> [Only registered and activated users can see links. Click Here To Register...]
Perfekt, danke dir hat geklappt! :)
10/18/2018 19:44 False#4
Quote:
Originally Posted by Cc_Cc_Cc View Post
Perfekt, danke dir hat geklappt! :)
Nur zur Ergänzung du kannst auch
Code:
$('body').on('click', 'Selector', function)
machen.
Damit werden ALLE (auch die erst noch erzeugt werden) Elemente mit dem Selector getriggert.
Beispiel: [Only registered and activated users can see links. Click Here To Register...]