Tach!
Wahrscheinlich daran, dass die neuen Elemente keinen Eventhandler besitzen.
Die neuen Elemente erhalten die Klasse
icon_edit_kat
. Diese sollte der Eventhandler sein.
Das hatten wir doch auch schon mal. $('selector').click(handler)
. Der erste Teil liefert eine Liste. Nur an die Elemente dieser Liste wird der Klick-Handler angefügt. Und nur zum Zeitpunkt der Codeausführung. Das ist kein Auftrag an alle zukünftigen Elemente mit zufälligerweise demselben Selector Eventhandler zu verpassen. Neue Elemente erweitern weder früher erstellte Listen noch machen sie irgendwem etwas automatisch nach.
Lausche an einem übergeordneten Element. Ah, das ist schonmal eine (überhaupt) gute Idee. Warum ist das in diesem Fall so entscheidend?
Das übergeordnete Element bleibt bestehen und ändert sich nicht, egal was du mit seinen Nachfahren anstellst. Es hat seinen Eventhandler hinzugefügt bekommen und behält den auch Zeit seines Lebens, wenn du daran nichts änderst.
Außerdem gibt es generell in Javascript einen Event-Bubbling-Mechanismus, durch den alle Events den DOM-Baum hinauf weitergeleitet werden. Das passiert unabhängig davon ob das geklickte Element oder Elemente in diesem Weg einen Eventhandler besitzen. Hat aber ein übergeordnetes Element einen entsprechenden Eventhandler, dann wird der für alle entsprechenden Events der Nachfahren aufgerufen. Dabei wird auch ein event-Objekt übergeben, in dem in einer der Eigenschaften eine Referenz auf das eigentlich geklickte Element enthalten ist.
dedlfix.