2017-04-08 36 views
1

Ich habe ein Element mit Eigenschaften wie Drag & Drop und 1 click Event-Handler. Ich habe dieses Element geklont und festgestellt, dass das geklonte Element den Ereignishandler hat, solange das ursprüngliche Element immer noch im DOM ist. In dem Moment, in dem ich das Original aus dem DOM entferne, wird der Event-Handler jedoch zerstört. Mein Code geht:Verwenden Sie Ereignishandler in geklonten Element nach dem Entfernen der ursprünglichen

el = $(@id).clone(true) 
$('#container').packery('addItems', el) 
el.appendTo('#container') 
$('#container').packery('layout') 
$('#lowerContainer > ' + @id).remove() 

Der Event-Handler auf el funktioniert, solange die letzte Zeile nicht hinzugefügt wird. Das Hinzufügen von $('#lowerContainer > ' + @id).remove() tötet jedoch den Handler. Weiß jemand, wie ich den Handler in geklontem Element halten kann, selbst nachdem ich das Original entfernt habe? Danke im Voraus!

$('#container').on('click', '.item', function() {...}); 

In diesem Fall ist es später hinzugefügt Klicks auf vorhandene Elemente wie auf diejenigen behandelt:

Antwort

0

Sie sollten Ihre Click-Handler auf Container anstatt auf einzelne Elemente definieren.

+0

Syntax ist falsch für Ereignisdelegierung, Zielselektor sollte Argument sein von 'on()' – charlietfl

+0

@charlietfl in der Tat, behoben. –

Verwandte Themen