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 に答える