Question

Je sais que live() peut être utilisé pour soutenir les gestionnaires d'événements pour le courant et « ajouté plus tard » éléments DOM.

Je me demande comment faire la même chose avec each()?

Comme si je l'ai $('.something_or_other').each() mais un autre élément DOM avec class="something_or_other" est ajouté? Comment puis-je configurer pour appliquer automatiquement chaque itération de ce nouvel élément DOM?

OU, que puis-je appeler après avoir ajouté le nouvel élément DOM à réappliquer les règles de each().

(affichage de mon âge un peu ici, mais dans le comportement que nous pouvons utiliser Behaviour.apply() à une nouvelle demande toutes les règles!)

Était-ce utile?

La solution

@meder noté, vous devriez vraiment le faire manuellement. Vous pouvez utiliser la même fonction pour les deux si vous le souhaitez.

function myFunction(i,val) {
    $(this).doSomething;
}

$('someSelector').each( myFunction );

$.ajax({
    url:'/some/path/',
    success: function( data ) {
        $(data).find('someSelector').each( myFunction )
               .end().appendTo('body');
    }
});

Si vous vraiment ne voulez pas faire cela, il y a un plugin appelé livequery qui exécuter du code lorsqu'un élément qui correspond à un sélecteur est ajouté à (ou retiré) DOM.

Il en coûte un peu de frais généraux supplémentaires, mais il est une option.

http://brandonaaron.net/code/livequery/docs

Autres conseils

Pourquoi tu ne peux pas lier la fonctionnalité au rappel ajax qui ajoute les éléments DOM à la doc? Semble le plus court et l'itinéraire le plus logique pour moi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top