0

ajaxリクエストで、ajaxリクエストから返されたページでolist[i]を更新する必要があります。ページを適切に設定できるように、どうすれば正しいインデックスと等しくすることができますか?_index:iをajaxに追加しようとしましたが、アクセスできませんでした。

function GetPagesList() {
var str, page;
var deferredArr = [], deferr;
startTime = +new Date;

for (var i = 0; i < olist.length; i++) {
    str = [];
    if (olist[i].pagelist == 1) {
        //
    } else {
        deferr =
                $.ajax({
                    type: 'POST',
                    url: 'wfrmHelper.aspx/GetTop10PagesByKey',
                    data: "{Key: '" + olist[i].Key + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(data) {
                        var o = $.parseJSON(data.d);

                        if (o != null) {
                            o.each(function(e, x) {
                                page = e.WebFormName;

                                if ($.inArray(page, Pages2Remove) == -1) {
                                    str.push(page);
                                    totalpages++;
                                }
                            });

                            olist[i].Pages = str; // need to set i
                        }
                    },
                    error: function(xhr, ret, e) {
                        alert('Error');
                    }
                });

        deferredArr.push(deferr);
    }
}

$.when.apply(this, deferredArr).then(function() {
    endTime = +new Date, delta = endTime - startTime;
    log('Total Pages ' + " took:" + delta.toString() + "ms");
});

}

4

3 に答える 3

0

オプションとしてajaxリクエストに渡し、this.iを使用してアクセスします。

$.ajax({
  ...
  index: i,
  ...
  success: function(data){
    ...
    alert(this.index);
    ...
  }
})
于 2013-01-24T19:02:39.320 に答える
0

1つの方法は、クロージャーを使用することです。

...
success: (function(i){
    return function(data) {
        ...
        olist[i].Pages = str;
        ...
    };
})(i),
...

テストされていません。

于 2013-01-24T19:03:08.540 に答える
0

非常に悪意のあるが、よく理解されておらず、評価されていないwith

with ({i:i})
{
    /* your ajax code referencing i*/
}
于 2013-01-24T19:18:59.417 に答える