Je vais aller droit au but, j'utilise jQuery pour cloner un élément div, qui a une durée à l'intérieur de laquelle j'ai lié un événement click qui, lorsqu'il est déclenché, supprime le juste cloné section du DOM, maintenant la première section fonctionne bien, mais pour une raison quelconque, il ne supprimera pas les sections clonés une fois qu'ils sont créés, voici mon code,Suppression d'un élément DOM en utilisant jQuery ne fonctionnant pas
HTML:
<div id='wrapper'>
<div id="mail">
<div class="container" id="email">
<label for="email_address">Email address: </label>
<div>
<input type="text" name="email_address" id="email_address" />
<span class="remove"></span>
</div>
</div>
</div>
<div class="container">
<input type="button" id="button" name="button" value="click me" />
</div>
</div>
jQuery:
$(document).ready(function() {
$("span.remove").click(function(){
$(this).parents("div.container").remove();
});
var count = 0;
$('#button').attr('disabled','');
$('#button').click(function(){
count++;
alert(count);
var test = $('#email.container').clone().attr('id', 'email_' + count).appendTo('#mail');
test.children(':nth-child(2)').children(':first').attr('id', 'mail_' + count);
if(count == 3){
$('#button').attr('disabled','disabled');
}
});
});
Il me manque probablement quelque chose de petit, mais je n'arrive pas à trouver le problème.
Aussi, j'ai essayé de trouver une meilleure façon de cloner les sections, et une meilleure façon de traverser les éléments enfants quand je les renommer, il semble un peu en désordre pour le moment, des idées là-dessus?
Merci d'avance!
vous pouvez simplement utiliser '.clone (true);' mais qui fonctionne aussi. ;) – Reigel
@Reigel, j'opte pour '.live' parce que ça me semble plus léger. Attacher tous ces gestionnaires alors que le clonage est ... lourd. – strager
bon point! +1, aussi, vous pourriez vouloir utiliser '.closest()' au lieu de '.parents()';) – Reigel