Javascript GoogleMaps API动画点击点数组

Javascript GoogleMaps API动画点击点数组,javascript,arrays,google-maps-api-3,Javascript,Arrays,Google Maps Api 3,我在网上搜索过,但似乎找不到问题的答案。我相信我很接近,但就是不能让它按预期的方式工作 我想在谷歌地图上绘制一个位置数组,并从DROP动画开始,然后当用户单击一个点时,我希望它反弹 但是,当您单击当前代码时,它的目标是数组中的最后一个值,我的当前代码完成了任务的1/2。“反弹”动画可以工作,但它似乎没有应用于数组中的所有值。你能指出我在代码中遗漏了什么吗 谢谢你的帮助 html,正文{ 身高:100%; 保证金:0; 填充:0; } #地图{ 身高:100%; } //创建映射变量 var映

我在网上搜索过,但似乎找不到问题的答案。我相信我很接近,但就是不能让它按预期的方式工作

我想在谷歌地图上绘制一个位置数组,并从DROP动画开始,然后当用户单击一个点时,我希望它反弹

但是,当您单击当前代码时,它的目标是数组中的最后一个值,我的当前代码完成了任务的1/2。“反弹”动画可以工作,但它似乎没有应用于数组中的所有值。你能指出我在代码中遗漏了什么吗

谢谢你的帮助


html,正文{
身高:100%;
保证金:0;
填充:0;
}
#地图{
身高:100%;
}
//创建映射变量
var映射;
var标记=[];
//函数初始化map div中的map
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
中心:{lat:40.74135,lng:-73.99802},
缩放:10
});
//创建单个latLng文本对象。
变量位置=[
{标题:'啤酒',位置:新谷歌.地图.LatLng(47.666633,-122.371453)},
{标题:'Home',位置:new google.maps.LatLng(47.613141,-122.320587)},
{标题:'工作',地点:新谷歌.地图.LatLng(47.624812,-122.315134)}
];
var bounds=new google.maps.LatLngBounds();
对于(变量i=0;i
一个选项是在click event listener函数中使用
来引用单击的标记

google.maps.event.addListener(marker, 'click', function(){
     if (this.getAnimation() !== null) {
         this.setAnimation(null);
      } else {
         this.setAnimation(google.maps.Animation.BOUNCE);
      }
});

(您也可以使用函数闭包)

谢谢!我仍然有点不明白为什么我当前的代码不起作用。我发现这是供参考的:当我将这段代码与我发布的原始代码进行比较时,我不明白为什么他们的代码有效,而我的代码无效。如果您有时间,您能给我解释一下或给我指一些有帮助的文章吗?
marker
变量左指最后一个标记,要修复它(如我在回答中所说),可以在click listener中使用
this
,或者使用函数闭包将标记变量与click listener关联(请参见中的信息窗口代码中的示例)为了解决此问题,FIDLE具有函数闭包(函数
createMarker
marker
变量具有闭包),您删除了该函数,从而丢失了代码中的闭包(“简单多标记”)问题I参考使用匿名函数在marker/infowindow上获取闭包)