Tôi đang sử dụng jQuery "GET" trong vòng lặp để nhận được một số kết quả từ máy chủ. Tôi muốn bao gồm các chỉ số vòng lặp như là một tham số cố định để gọi lại nhưng nó không hoạt động.đóng trong vòng lặp for - gọi lại với biến vòng lặp làm tham số
(Tôi làm theo các lời khuyên của this article về cách để làm điều đó.)
Tuy nhiên, giá trị tôi nhận được trong các cuộc gọi trở lại là hoàn toàn không phải là điều tôi mong đợi - chứ không phải mỗi giá trị chỉ số vòng lặp, nó luôn luôn là bình đẳng với giá trị thoát của chỉ mục.
tức là. đoạn mã ở đây in ra '16' cho mỗi lần thực hiện cuộc gọi lại. Làm thế nào để tôi in nó 1, 2, 3 ... (Tôi nhận ra thứ tự có thể khác, đó là tiền phạt)
Ngoài mã bên dưới, tôi đã thử một số cách để xác định chức năng gọi lại , ví dụ. function(data, textStatus) { return test(data, textStatus, idx); }, 'text');
v.v.
Làm cách nào để hoạt động?
function test(data, textStatus, siteNo)
{
console.log("siteNo=" + siteNo);
}
function loadConfigLists()
{
var siteReport;
// retrieve site configuration
jQuery.get("svGetSiteConfig.php", function(data, textStatus)
{
// retrieve port configuration for all sites
for (var idx=1; idx<=15; idx++)
{
var probeIP = siteConfigArray[idx].siteIP;
if (probeIP != "" && probeIP != null)
jQuery.get("svGetPortInfo.php?svSiteIpAddr=" + probeIP+"&s="+idx,
function(data, textStatus) { test(data, textStatus, idx); }, 'text');
else // IP value is blank
siteConfigArray[idx].portManifest = null;
}
}
}, 'text');
}
Cảm ơn! Điều đó đã làm điều đó. – Danny
Thông minh! ........... :-) – TMS
Cảm ơn, tôi đã tìm thấy một cách tiện dụng hơn nữa là biến mọi hàm() {blahblah sử dụng var i} thành (hàm (ii) {return function() { mã cũ nhưng thay đổi i thành "ii"}}) (i); –