jquery seul clone contenu de l'élément
Est-il un moyen de jQuery pour clone d'un élément de contenu? Pas l'ensemble de l'élément, seul le contenu(les enfants).
Quelque chose de semblable à ce que .html()
est en train de faire, mais je suis aussi intéressé par le clonage, les événements attachés aux contenus.
Je regardais .clone
, mais il semble que le clonage est l'ensemble de l'élément.
Grâce.
Boucle à travers tous les enfants et de les copier?
les événements attachée à ces éléments ne sont pas clonés
$cloned.children()
?les événements attachée à ces éléments ne sont pas clonés
OriginalL'auteur Doua Beri | 2013-01-06
Vous devez vous connecter pour publier un commentaire.
Doua Beri, avec référence à la documentation de l'API de jQuery pour
.clone()
, vous trouverez que ce que vous voulez est.clone(true,true)
. Cela permettra de faire une copie d'un élément (ou d'un ensemble d'éléments), y compris toutes les données et les liaisons d'événements.Vous avez alors le choix de deux options quant à la façon dont vous utilisez
.clone(true,true)
.Clone les enfants individuellement pour donner un jQuery collection qui comprend des clones des enfants.
var $childClones = $("#myElement").children().clone(true,true);
Clone de l'élément extérieur pour donner un jQuery collection, composé d'un clone de l'élément extérieur, contenant lui-même des clones des enfants.
var $clone = $("#myElement").clone(true,true);
C'est un peu scolaire qui approche à adopter. Dans les deux cas, les éléments descendants sont disponibles individuellement ou collectivement à être manipulé et/ou l'insérer dans le DOM, si le code ne serait diffèrent légèrement.
OriginalL'auteur Beetroot-Beetroot
Si vous voulez une copie en profondeur tout simplement de cloner les enfants:
$('#footer-flair').children().clone()
Et au lieu de s'attacher les évènements à certains éléments particuliers attacher un événement à un élément de conteneur qui est à l'écoute de l'enfant-éléments, de cette façon vos événements feu aussi longtemps que l'élément conteneur reste même si vous ajouter/supprimer un millier d'éléments à l'intérieur du conteneur. Vous pouvez le faire sur le corps de la balise si vous ne souhaitez que vos événements aller loin.
Utiliser le " on " méthode pour lier les événements de la sorte:
les événements ne sont pas clonés.
Ce que j'essaie de dire dans ma réponse est que vous ne peut pas dupliquer les événements, mais au lieu d'avoir de nombreux événements attachés à de nombreux éléments différents, les lier à un parent comme "corps" et de les écouter pour les enfants comme dans l'exemple de code ci-dessus.
Les événements qui ne sont pas les bulles ne sont pas souvent utilisés, et même alors, le gain d'événements liés à un élément au lieu de 100 est énorme, non seulement pour la gestion de la mémoire...
Oui, délégation est bon quand c'est possible et approprié, mais nous n'avons pas connaissance d'événements qui l'OP doit gérer. De plus, le traitement des non-événements de propagation n'est pas du tout rare. Ils incluent des changements, de les soumettre, de se concentrer, de flou, de charger, de décharger.
OriginalL'auteur nimrod