0

我一直试图让代码工作几个小时。在我看来,一切都很好,但它不起作用。标记不断出现在同一时间。

如果您能指出我的错误,我将不胜感激。提前致谢!

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);
    }
}
4

1 回答 1

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);
    }
}
于 2013-02-28T19:40:39.830 回答