J'écris une fonction générique qui sera réutilisée dans plusieurs endroits de mon script.
La fonction utilise AJAX (à l'aide de la bibliothèque de jQuery), donc je souhaite passer en quelque sorte une fonction (ou des lignes de code) dans cette fonction exécuter quand AJAX est terminé. Je crois que cela doit être une fonction de rappel, mais après avoir lu quelques réponses de rappel, je suis toujours un peu confus sur la manière dont je voudrais mettre en œuvre dans mon cas. P>
Ma fonction actuelle est la suivante: P> avec cette fonction, je veux pouvoir faire quelque chose de la même manière que d'autres fonctions jQuery fonctionnent, c'est-à-dire; p>
3 Réponses :
Il suffit de donner getNewenumber code> un autre paramètre pour la fonction, puis utilisez-le comme rappel.
// receive a function -----------------v
function getNewENumber( parentENumber, cb_func ){
$.ajax({
type: "POST",
url: "get_new_e_number.php",
data: {project_number: projectNumber, parent_number: parentENumber},
// ------v-------use it as the callback function
success: cb_func,
error: function(request,error) {
alert('An error occurred attempting to get new e-number');
// console.log(request, error);
}
});
}
var parentENumber = E1-3;
getNewENumber(parentENumber, function( returnValue ){
alert( returnValue );
});
Parfait. Je nouveau ce serait quelque chose de simple. Il est toujours plus facile d'apprendre quand il est mis dans votre propre contexte. Merci
@Patrick DW's anwser est correct. Mais si vous souhaitez continuer à appeler la console.log code> (ou d'autres actions) toujours, quelle que soit la fonction de code de l'appelant, vous pouvez ajouter le rappel (votre nouveau paramètre) à l'intérieur de la fonction de réussite Vous avez déjà:
var parentENumber = E1-3;
getNewENumber(parentENumber, function(val /* <--new param is here*/){
alert(val);
});
Oui, quand je la mettais dans mon code, je me suis demandé comment le faire si j'avais voulu avoir d'autres actions de succès. Merci
Ce serait mieux fait avec JQuery's Objets différés . Avoir votre appel AJAX retour em> l'objet si vous souhaitez conserver le rappel d'erreur dans em> dans em> Cette fonction vous pouvez enregistrer là-bas à la place: p> jQxhr code>.
Je suppose que cela n'est pas possible (ou du moins, très difficile) de cette façon. Vous devez échanger des fonctions.