将附加参数传递给$ .ajax完成回调函数

vit*_*tto 1 jquery parameter-passing

我正在编写一个jQuery插件,我需要使用一个$.ajax请求并使用附加参数处理回调,但我发现很难实现它.

简化版:

$('#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) {

}
Run Code Online (Sandbox Code Playgroud)

确实存在某种方式做这样的事情传递additional_paramscomplete回调函数(在这种情况下getResponse)?

Jam*_*gne 16

function callback(stuff){
   // use stuff
}

...

   var something="something";

   $.ajax({
      url: "test.html",
      complete: function(){
         callback(something);
      }
   });

...
Run Code Online (Sandbox Code Playgroud)

如果您需要其中一个已经通过的参数,您可以将其更改为:

complete: function(jqXHR, textStatus){
      callback(jqXHR, textStatus, something);
}
Run Code Online (Sandbox Code Playgroud)

  • +1这是最简单的解决方案.(特别是第二个代码部分,每个人都需要`data` ...而忘记了jqXHR).那为什么我会看到封闭解决方案呢? (2认同)