Mam następujący kod:zmienne JavaScript niezdefiniowane wewnątrz funkcji setTimeout
for (var i = 0; i < markers.length; i++) {
var lat = markers[i][0];
var lng = markers[i][1];
var img = markers[i][2];
var info = markers[i][3];
setTimeout(function(lat, lng, img, info) {
console.log(lat + ', ' + lng);
$('#map').gmap3({
action: 'addMarker',
latLng:[lat, lng],
options:{
animation: google.maps.Animation.DROP,
icon: img
},
events:{
click: function(marker, event, data){
$(this).gmap3({action:'addinfowindow', anchor:marker, options:{content: '<div id="content" style="width:300px;height:250px;"><img src="' + info + '"></img></div>'}});
/*var infowindow = $(this).gmap3({action:'get', name:'infowindow'});
infowindow.close();*/
},
}
});
}, i* 100);
}
console.log jest pokazujący niezdefiniowana dla lat i LNG. Dlaczego to?
Wcześniej nie przechodzą wszystkie zmienne do funkcji w obrębie limitu czasu i zostały one zdefiniowane, ale jest stosowany ten sam jeden dla każdego znacznika w pętli, która to oczywiście tak!
Wszelkie pomysły?
Tak, usuń lub zmodyfikuj nazwy swoich parametrów ** funkcja (lat1, lng1, img1, info1) ** lub ** funkcja() ** – cbayram