Passer des paramètres supplémentaires de $.ajax complet fonction de rappel
Je suis en train d'écrire un jQuery
plugin où j'ai besoin d'utiliser un $.ajax
demande et à gérer le rappel avec un paramètre supplémentaire, mais je trouve qu'il est très difficile à mettre en œuvre.
un semplified version:
$('#element_id').click (function () {
var additional_params = { name:'mike', surname:'buongiorno' };
var ajax_params = {
type: "POST",
url: "some.php",
data:'data here',
complete:getResponse
}
sendAJAX (ajax_params, additional_params);
});
var sendAJAX = function (ajax_params, additional_params) {
$.ajax(ajax_params, additional_params);
}
var getResponse = function (data, additional_params) {
}
Existe une certaine manière de faire quelque chose comme cela se passe additional_params
à complete
fonction de rappel (dans ce cas getResponse
)?
Vous devez vous connecter pour publier un commentaire.
Et dans le cas où vous avez besoin de l'un des paramètres qui déjà sont passées, vous pouvez le remplacer par ceci:
data
... et oublier jqXHR ). alors, pourquoi dois-je voir la fermeture des solutions ?Vous pouvez faire quelque chose comme:
Fondamentalement
getResponse
a été modifiée de sorte qu'elle renvoie une fonction de fermeture qui inclut tout ce quiadditional_params
passée dans. Les paramètres seront disponibles à la fonction de gestionnaire lorsque jQuery invoque.Voici la pasttern de code que j'utilise pour publier des données JSON, puis traiter la réponse à l'aide d'une méthode de rappel qui me permet de configurer certaines données dans 'info' qui seront disponibles de manière asynchrone, et est passé dans la méthode de rappel que le deuxième paramètre de la méthode de rappel. De cette façon, vos méthodes de rappel peuvent avoir certains "contexte" passé à l'intérieur (via 'info'), et il embrasse tous les "passe-partout" dans cette méthode appelée "json". La ligne principale est bien sûr l'endroit où elle appelle la méthode de rappel. Merci pour le post de James Montagne, qui m'a permis de venir avec cette conception.