jQuery-Funktionen reagieren nicht nach append ()

8

Ich erstelle eine Reihe von div-Feldern, mit denen Benutzer Elemente aus jeder Box mit jQuery hinzufügen / entfernen können. Ich finde, dass, nachdem ich einer Box ein neues Element hinzugefügt habe, die Klick-Funktion, die ich an dieses Element gebunden habe, nicht antwortet. Hier ist ungefähr, wie mein Code aussieht:

%Vor%

Wenn ich #targetbox mit Elementen vorbelege, reagieren sie auf die Klickfunktion. Es werden nur die Elemente dynamisch hinzugefügt, die nicht auf die Funktion reagieren.

    
Jarred 06.12.2010, 18:57
quelle

3 Antworten

15

Fügen Sie die Klickmethode direkt zu Ihrem neu angehängten Element hinzu

%Vor%

Oder verwenden Sie die Methode .live() , die das Klickereignis für Sie bindet, nachdem Sie ein neues .remove -Element hinzugefügt haben

%Vor%     
potench 06.12.2010, 19:06
quelle
11

Ihr Code behandelt das Klickereignis für alle Elemente derzeit in $('.remove') .
Alle Elemente, die noch nicht existieren, sind nicht betroffen.

Sie müssen die Methoden .live() oder .delegate aufrufen, die das Ereignis für alle Elemente behandeln, die mit dem Selektor übereinstimmen, unabhängig davon, wann sie erstellt wurden.

Zum Beispiel:

%Vor%     
SLaks 06.12.2010 19:02
quelle
1

Wenn der Code ausgeführt wird, werden die Elemente noch nicht hinzugefügt. Sie müssen die Funktion zum Entfernen von Klicks hinzufügen, die Ihrem neuen Block dynamisch zugewiesen wird, nachdem Sie ihn während der Funktion zum Hinzufügen von Klicks hinzugefügt haben.

%Vor%     
Shawn Steward 06.12.2010 19:03
quelle

Tags und Links