我一直试图让代码工作几个小时。在我看来,一切都很好,但它不起作用。标记会同时显示出来。
如果你能指出我的错误,我真的很感激。提前谢谢!
function dropMarker(data){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map,
title: data.name,
animation: google.maps.Animation.DROP
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', function() {
showIW(this);
});
}
function placeAllMarkers(data){
clearMarkers();
for(var i=0;i<data.length;i++){
setTimeout(dropMarker(data[i]),100*i);
}
}
答案 0 :(得分:1)
你必须将一个函数传递给setTimeout而不是调用它中的函数。尝试
function placeAllMarkers(data){
clearMarkers();
for(var i=0;i<data.length;i++){
setTimeout((function(i){return function(){dropMarker(data[i])};})(i),100*i);
}
}