Używam jQuery "GET" w pętli, aby uzyskać kilka wyników z serwera. Chcę włączyć indeks pętli jako stały parametr do oddzwonienia, ale nie działa.zamknięcie wewnątrz pętli for - wywołanie zwrotne z zmienną pętli jako parametr
(I pójść za radą this article o tym, jak to zrobić.)
Jednakże wartość dostaję w oddzwaniania nie jest całkowicie czego oczekuję - zamiast każdej wartości indeksu pętli, to jest zawsze równa do wartości wyjściowej indeksu.
tj. fragment kodu tutaj wypisuje "16" dla każdego wykonania wywołania zwrotnego. Jak mogę go wydrukować 1, 2, 3 ... (Rozumiem, że kolejność może być inna, to w porządku)
Oprócz kodu poniżej, wypróbowałem kilka sposobów, aby określić funkcję oddzwonienia np. function(data, textStatus) { return test(data, textStatus, idx); }, 'text');
itp.
Jak to ma działać?
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');
}
Dzięki! Tak było. – Danny
Sprytny! ........... :-) – TMS
Dzięki, znalazłem jeszcze bardziej przydatny sposób, aby włączyć każdą funkcję() {blahblah, który używa var i} do (function (ii) {return function() { stary kod, ale zmienia się na "ii"}}) (i); –