2013-02-02 38 views
4

我希望幾秒鐘標記反彈,最終自動停止..我想這段代碼:谷歌地圖彈跳動畫上標記在有限的時間

1. globalMarkers[i].setAnimation(google.maps.Animation.BOUNCE); 
2. setTimeout(function() { 
3. globalMarkers[i].setAnimation(null) 
4. }, 3000); 

但由於某些原因,1個線執行(因此標記將開始彈跳)但第三行返回以下錯誤:

Uncaught TypeError: Cannot call method 'setAnimation' of undefined 
     (anonymous function) 

任何想法它可能是什麼?

+0

你可以發佈更多的代碼? – ScottE

回答

11

這工作得很好(有一個單一的全球標誌物)

marker.setAnimation(google.maps.Animation.BOUNCE); 

    setTimeout(function() { 
     marker.setAnimation(null) 
    }, 3000); 

我的猜測是,你正在作用中,和你的setTimeout我不在範圍內。試試這個:

for (var x = 0; x < 5; x++) { 
     var marker = markers[x]; 
     marker.setAnimation(google.maps.Animation.BOUNCE); 
     stopAnimation(marker); 
    } 


function stopAnimation(marker) { 
    setTimeout(function() { 
     marker.setAnimation(null); 
    }, 3000); 
} 

這裏有一些更有創意的解決方案:

Javascript how to use setTimeout on an iterative list operation?