我希望标记会反弹几秒钟并最终自动停止..我正在尝试此代码:
1. globalMarkers[i].setAnimation(google.maps.Animation.BOUNCE);
2. setTimeout(function() {
3. globalMarkers[i].setAnimation(null)
4. }, 3000);
但由于某种原因,第1行执行(因此标记将开始弹跳)但第3行返回以下错误:
Uncaught TypeError: Cannot call method 'setAnimation' of undefined
(anonymous function)
任何想法可能是什么?
答案 0 :(得分:12)
这样可以正常工作(使用单个全局标记对象)
marker.setAnimation(google.maps.Animation.BOUNCE);
setTimeout(function() {
marker.setAnimation(null)
}, 3000);
我的猜测是你正在进行交流,而你的setTimeout i不在范围内。试试这个:
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?