jQuery的ajax成功函数的额外参数

ske*_*rit 5 xml variables ajax jquery get

我正在使用以下代码获取XML文件:

function getMaps(){

    toLoad = loadMaps.length;

    for (var i = 0; i < loadMaps.length; i++){
        $.ajax({
          type: "GET",
          url: loadMaps[i],
          dataType: "xml",
          success: processMap
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但我想给processMap另一个参数(即loadMaps [i],用来存储加载的xml的名称)

我无法弄清楚如何在不求助于全局变量的情况下做到这一点,这不是我想要的。

jAn*_*ndy 5

jQuery success callback具有三个参数,无法更改或扩展。因此,您需要在关闭的匿名函数中调用函数。

for (var i = 0; i < loadMaps.length; i++){
    $.ajax({
      type: "GET",
      url: loadMaps[i],
      dataType: "xml",
      success: function(xhr, textStatus, error){
           processMap(loadMaps[i]);
      }
    });
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意这一点。“ i”应始终为loadMaps.length +1。请确保将ajax代码包装在带有“ i”变量参数的函数上 (3认同)