代码之家  ›  专栏  ›  技术社区  ›  Brock Adams

如何将参数传递给jquery ajax请求的回调?

  •  3
  • Brock Adams  · 技术社区  · 14 年前

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

    例如,给定:

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

    ProcessData() 每次报告0(或K的最后一个值是什么)。

    我如何确保 进程数据() 使用或可以获取正确的k值激发?

    有没有办法不用包装 $get() 在函数中?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Matthew Flaschen    14 年前

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

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

    此外,success函数的第二个参数不应称为k。该参数将获得状态,然后隐藏所需的k。