Tôi đang thực hiện một số cuộc gọi jQuery ajax trong vòng lặp. Mỗi lần một trong các cuộc gọi ajax trở lại, tôi cần tham chiếu một giá trị tương ứng với lệnh gọi ajax ban đầu. Mã hiện tại của tôi không hoạt động đúng cách, trong đó giá trị của biến số lskey
đã bị thay đổi bởi các vòng lặp lặp lại tiếp theo.Vòng lặp cuộc gọi jQuery Ajax mất tham chiếu biến cục bộ
Đây là mã:
for (var i = 0, len = localStorage.length; i < len; i++) {
var lskey = localStorage.key(i);
if (lskey.substr(0, 4) === 'form') {
var postdata = localStorage.getItem(lskey); // Get the form data
$.ajax({
type: "POST",
async: "false",
url: "/Profile/PostForm",
data: postdata,
success: function (data) {
$('#rollinginfo').append('<br>' + data + ',key=' + lskey);
localStorage.removeItem(lskey); // Remove the relevant localStorage entry
}
, error: function (data) { $('#rollinginfo').append('<br />ERR:' + data); }
});
}
}
Vấn đề là lskey
là được thay đổi mỗi lần vòng lặp thực hiện, và do đó gọi lại thành công không có một tham chiếu đến giá trị của lskey đã tồn tại vào thời điểm đó của cuộc gọi.
Làm cách nào để tham chiếu giá trị chính xác của lskey
cho mỗi lần gọi lại thành công?
Rất hữu ích, Cảm ơn bạn rất nhiều ... –
Tôi đã viết một truy vấn tìm kiếm kỳ quặc kỳ lạ trên google và BAM! kết quả đầu tiên là câu trả lời của bạn, cảm ơn rất nhiều! Và các quy tắc SO! – NaturalBornCamper
Giải thích tại sao công trình này có thể hữu ích. – dshgna