Exécuter Javascript après la réponse ajax

Je veux exécuter un morceau de javascript après que la réponse ajax a été rendue. La fonction javascript est générée dynamicment lors de la demande ajax et figure dans la réponse ajax. événements «complets» et «réussis» pour ne pas faire le travail. J’ai inspecté la demande ajax dans la console Firebug et la réponse n’a pas été rendue lorsque le rappel complet est exécuté.

Does not work: function reloadForm() { jQuery.ajax({ url: "", type: "GET", complete: custom_function_with_js_in_response() }); }; 

ajaxComplete effectue le travail, mais il s’exécute pour tous les appels ajax de la page. Je veux éviter ça. Y a-t-il une solution possible?

 $('#link_form').ajaxComplete(function() { custom_function_with_js_in_response(); }); 

vous pouvez également utiliser $ .ajax (..). done (do_things_here ());

 $(document).ready(function() { $('#obj').click(function() { $.ajax({ url: "" }).done(function() { do_something_here(); }); }); 

});

ou y a-t-il un autre moyen

 $(document).ready(function() { $('#obj').click(function() { $.ajax({ url: "", success: function(data){ do_something_with(data); } }) }); 

});

Veuillez utiliser ce moteur pour partager votre problème et essayer des solutions. C’est très efficace.

http://jsfiddle.net/qTDAv/7/ (PS: ceci contient un exemple à essayer)

J’espère aider

Vérifier (et différer l’appel si nécessaire) et exécuter l’existence de la fonction de rappel pourrait fonctionner:

 // undefine the function before the AJAX call // replace myFunc with the name of the function to be executed on complete() myFunc = null; $.ajax({ ... complete: function() { runCompleteCallback(myFunc); }, ... }); function runCompleteCallback(_func) { if(typeof _func == 'function') { return _func(); } setTimeout(function() { runCompleteCallback(_func); }, 100); } 

Je ne peux pas aider beaucoup sans code. Comme exemple général tiré de la page complète de JQuery ajax

 $('.log').ajaxComplete(function(e, xhr, settings) { if (settings.url == 'ajax/test.html') { $(this).text('Triggered ajaxComplete handler. The result is ' + xhr.responseHTML); } }); 

Dans ajaxComplete, vous pouvez décider de filtrer l’URL pour laquelle vous voulez écrire du code.

Essayez de spécifier le nom de la fonction sans () dans les options ajax:

 function reloadForm() { jQuery.ajax({ url: "", type: "GET", complete: custom_function_with_js_in_response }); };