2010-01-09 4 views
7

Est-il possible de créer et d'attacher un rappel qui serait appelé chaque fois qu'une requête ajax se termine, que l'appel ait été fait en utilisant $.ajax, $.post, load ou toute autre fonction?Rappel global pour les appels Ajax dans JQuery

EDIT:

La solution donnée par Nakul (en utilisant événement mondial ajaxSuccess) est presque parfait. Cependant, j'ai un problème lors de l'utilisation de la fonction load. L'événement ajaxSuccess est déclenché après la fin de la requête mais avant toute manipulation DOM. Je voudrais exécuter du code après que le DOM a été modifié. Ma solution temporaire est d'utiliser setTimeout et attendre quelques millisecondes mais je ne pense pas que ce serait assez fiable pour moi.

Donc une autre question est: comment pouvez-vous exécuter du code après que le DOM a été manipulé par la fonction load?

EDIT 2:

J'ai réussi à résoudre le second problème en utilisant l'événement ajaxComplete au lieu de ajaxSuccess.

+0

Pouvez-vous mettre votre solution? – redolent

Répondre

1

Utilisez le ajaxSuccess et peut-être que vous voulez exécuter le code lorsque vous cliquez sur un lien?

HTML:

<a href="javascript:void(0);" class="runCode">Run code</a> 

JS:

$(function() { // same as dom loaded 
    $('a.runCode').click(function() { 
     alert('whatever you want to do here'); 
    }); 
}); 
Questions connexes