2009-03-06 11 views
0

J'ai besoin de savoir s'il y a un événement qui se déclenche lorsqu'un élément est terminé. J'ai un div dire avec id A. Maintenant, je crée et rend ce div avec ajax et besoin d'accéder à des éléments à l'intérieur div. Comment puis-je le faire. Essayé avec $ ("# A"). Init(). Ça ne marche pas.Ajax appel terminé événement

Répondre

2

Si vous mettez à jour votre div avec un appel ajax, une fonction de rappel peut être ajoutée aux paramètres. Cette fonction de rappel sera exécutée une fois que le paiement ajax appel complète:

$("#A").load(url, parameters, function() { 
    // access elements inside div here 
}); 
+0

Je vais vérifier cela lundi. Merci beaucoup. – Tanmoy

0

La manière évidente est de mettre votre manipulation dans le rappel de l'appel AJAX load/ajax/post/etc. Si vous ne pouvez pas le faire (pour une raison quelconque), peut-être ce cas ajaxComplete est ce que vous êtes après:

$("#msg").ajaxComplete(function(request, settings){ 
    $(this).append("<li>Request Complete.</li>"); 
}); 

Bien sûr, vous devez détecter qu'il est appeler cette tâche effectuée le droit AJAX, mais peut-être cette aide .

0

J'ai rencontré des problèmes similaires plusieurs fois. J'ai presque abandonné jusqu'à ce que je suis allé à travers la documentation détaillée de la fonction .on().

Normalement en utilisant la fonction .on() nous attachons gestionnaires d'événements comme suit:

$("#dataTable tbody tr").on("click",function() { 
     alert($(this).text()); 
    }); 

Mais par-événements délégués approche que nous pouvons réaliser même chose par:

$("#dataTable tbody").on("click","tr",function() { 
     alert($(this).text()); 
    }); 

Ici, même si les lignes de la table, c'est-à-dire que les éléments tr sont mis à jour par un appel ajax, le code ci-dessus restera toujours attaché et continuera à effectuer les actions voulues. Je suppose que cela résout votre question.

Questions connexes