, пожалуйста, ознакомьтесь со следующим кодом. Когда значение i == 0, предупреждение 1 печатает значения переменных в соответствии с логикой. Но если я попытаюсь напечатать значения (предупреждение 2), он просто скажет «undefined, undefined». Мой вопрос заключается в том, какие изменения мне придется внести, чтобы получить значения, напечатанные во втором предупреждении (Alert 2), как и для предупреждения 1?Как установить переменную javascript изнутри функции?
var testPoint = [];
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(52.5271463402545, -1.50573921491311), 8, G_HYBRID_MAP);
GDownloadUrl("controllers/gmap_genxml2.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
if(i == 0) {
testPoint["lat"] = parseFloat(markers[i].getAttribute("lat"));
testPoint["lng"] = parseFloat(markers[i].getAttribute("lng"));
/********* ALERT 1 ***********/
alert(testPoint["lat"]+" "+testPoint["lng"]);
/********* ALERT 1 End ***********/
}
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(point, name, address, type);
map.addOverlay(marker);
}
});
/********* ALERT 2 ******************/
alert(testPoint["lat"]+" "+testPoint["lng"]);
/********* ALERT 2 Start ***********/
}
}
Благодарим за помощь. DeeJay
Это работает !! Круто. Благодарю. – TigerTiger
Почему бы вам просто не выполнить фактическую работу alert2 в конце анонимной функции обратного вызова? петли опроса действительно слабы. Также будет более подходящим setInterval. – annakata
@ "annakata" Можете ли вы представить какой-либо пример, пожалуйста? Благодарю. – TigerTiger