2011-06-10 1 views
1

J'ai un problème avec jQuery et .clone(true, true). Jetez un oeil on this jsFiddle.Clonage HTMLElements avec jQuery échoue étrangement

Le problème est: lorsque je clone un objet (en utilisant .clone(true, true) - profondeur: données et événements), les événements fonctionnent, mais appliquent toutes les fonctions sur l'objet original (l'objet modèle).

Tout sera clair à la lecture du code.

Bye et merci pour toute l'aide :)

+0

ce que vous essayez d'accomplir exactement? – kroehre

Répondre

2

je crois que le problème est votre utilisation intensive de exampleVariable = $(this).

Lorsque vous utilisez la variable au lieu d'utiliser explicitement $(this), vous n'utilisez pas le $(this) actuel si cela a un sens.

J'ai fait quelques changements: (violon ici: http://jsfiddle.net/PGM6W/)

 // On click on more, append a new model 
     // Will update table buttons too 
     // THIS WORKS FINE, except if I click on remove and click on this two times (try it) 
     selfRow.find('a.more').click(function(){ 
      $(this).parents("table").append(model.clone(true, true)); 
      updateModel(selfTable); 
     }); 

     // On click on remove, will remove current row 
     // Will update table buttons too 
     // THIS NOT WORKS FINE, and broke the a.more event! 
     selfRow.find('a.remove').click(function(){ 
      $(this).remove(); 
      updateModel(selfTable); 
     }); 
+0

Super! Je fais quelques modifications pour travailler encore mieux, mais vous avez parfaitement raison. Merci pour l'aide. [code mis à jour] (http://jsfiddle.net/PGM6W/2/). –