【发布时间】:2011-11-16 21:20:17
【问题描述】:
我有一个谷歌地图,其中添加了一些简单的按钮来平移到不同的位置。
<input id="loc0" type="button" value="Cape Sable (6)">
<input id="loc1" type="button" value="Florida Bay (3)">
最初,我是使用这段代码来使按钮工作的:
var locations = [
new google.maps.LatLng(25.171, -81.060),
new google.maps.LatLng(25.211, -80.650)
];
$('#loc0').click(function(){
map.panTo(locations[0]);
map.setZoom(12);
});
$('#loc1').click(function(){
map.panTo(locations[1]);
map.setZoom(12);
});
这很好用,但我希望将 click 函数编写为循环,因此我不必继续使用冗余代码。但我似乎无法弄清楚。
我尝试了以下方法:
for (i = 0; i < locations.length; i++) {
$('#loc'+i).click(function() {
map.panTo(locations[i]);
map.setZoom(12);
});
}
但尝试使用按钮时出现错误:panTo: latLng must be of type LatLng (122 out of range 43)。我不精通jQuery,所以我怀疑这是我还不明白的简单事情。有什么提示吗?
【问题讨论】:
-
我会尝试与您在“for”中使用的完全相同的代码,但将“i”变量更改为其他内容,以防谷歌地图 api 在 panTo 方法中使用未声明的“i”变量跨度>
-
@Lil'Monkey 试过了,但我收到错误
panTo: latLng must be of type LatLng (122 out of range 43)。 Brad 的代码消除了该错误,但我仍然无法将平底锅放到正确的位置,而不仅仅是列出的最后一个。
标签: jquery google-maps loops button selector