我需要将额外的变量传递给jQuery,ajax回调函数。

例如,给定:

while (K--)
{
    $.get
    (
        "BaseURL" + K,
        function (zData, K) {ProcessData (zData, K); }
    );
}

function ProcessData (zData, K)
{
    console.log (K);
}
ProcessData()每次都会报告0(或K的最后一个值是)。

如何确保ProcessData()用正确的K值触发或可以获取正确的K值?

没有将$get()包装在函数中的方法吗?

最佳答案

否。由于闭包的工作方式,所有内部函数都将在同一个K变量(最终等于0)上关闭。您需要在某处附加一个间接级别来创建单独的作用域。例如。:

while (K--)
{
    (function(K)
    {
      $.get
      (
          "BaseURL" + K,
          function (zData, status) {ProcessData (zData, K); }
      );
    })(K);
}

同样,不应将成功函数的第二个参数称为K。该参数将获得状态,然后将其阴影在所需的K上。

关于javascript - 如何将参数传递给jQuery ajax请求的回调?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3182423/

10-09 09:55