Ho il seguente codice:variabili JavaScript undefined all'interno della funzione 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);
}
Il console.log sta mostrando non definito per lat e lng. Perchè è questo?
In precedenza non ho passato nessuna variabile nella funzione entro il timeout e sono stati definiti ma ha utilizzato lo stesso per ciascun marker nel ciclo for che era ovviamente sbagliato!
Qualche idea?
Sì, rimuovere o modificare i nomi dei parametri ** funzione (lat1, lng1, img1, info1) ** o ** function() ** – cbayram