2010-11-16 10 views
2

Existe-t-il un moyen d'exécuter du code sur de nouveaux objets? Quelque chose comme ceci:événement "create" utilisant jquery "live"

$('.some_class').live('create', function() { 
    $(this).append('something'); 
} 

Alors something sera ajouté à tous les éléments avec la classe some_class (les actuels et futurs).

Répondre

2

Il existe un plugin Jquery appelé livequery qui répond à vos besoins.

J'aime penser à ce plugin Jquery .live() mais sans la nécessité d'un événement (clic), etc. (Il écoute en fait des événements dom)

Vous pouvez trouver plus d'informations ici//

Jquery - Live Query Plugin

Votre exemple serait la suivante

$('.some_class').livequery(function() { $(this).append('something');}); 
2

Alternativement, si vous ne souhaitez utiliser le plugin livequery ...

Vous pouvez également utiliser des événements délégués pour de nouveaux objets en utilisant .delegate();

$("body").delegate(".newdiv", "click", function(){alert('new div clicked')}); 

Ou vous pouvez lier quelque chose à un succès en utilisant AJAX .ajaxSuccess()

$('.someclass').ajaxSuccess(function() { 
$(this).append('something'); 
}); 
+0

est différent de faire '$ ("corps .newdiv"). Live ("clic", la fonction () {alert ('nouveau div cliqué')}); '? – cambraca

+0

seulement dans le fait que vous pouvez spécifier un élément dans la racine d'un autre avec délégué. La documentation Jquery peut les expliquer mieux – Blowsie

+0

Intéressant, je vais vérifier cela. Merci! – cambraca

Questions connexes