【发布时间】:2011-05-19 08:29:18
【问题描述】:
我有一个标记位置的 JSON 数组被拉入谷歌地图 - 这工作正常。
我也将 infoWindows 链接到每个标记 - 这些也可以正常工作。
但是,当我(在任何浏览器中)单击标记时,信息窗口仅显示在最后添加的标记上方。
这是一个小提琴:http://jsfiddle.net/neuroflux/8WDwn/10/ 这是我的循环:
for (var a = 0; a < dealer_markers.length; a++) {
var tmpLat = dealer_markers[a].lat;
var tmpLng = dealer_markers[a].lng;
var tmpName = dealer_markers[a].name;
var tmpAdr = dealer_markers[a].adr;
var tmpTel = dealer_markers[a].pc;
var tmpPc = dealer_markers[a].tel;
contentString[a] = '<div id="bg"><h2 class="title">'+tmpName+'</h2><h3 class="address">'+tmpAdr+'</h3><h3 class="pc">'+tmpPc+'</h3><h3 class="telephone">'+tmpTel+'</h3></div>';
var content = contentString[a];
dealer[a] = new google.maps.LatLng(tmpLat,tmpLng);
deal = dealer[a];
marker[a] = new google.maps.Marker({
map:map,
position: deal,
icon:'dealer.png',
title: "|"+new google.maps.LatLng(dealer[a].Ja,dealer[a].Ka)
});
lat = marker[a].position.Ja;
lng = marker[a].position.Ka;
compositeLatLng = new google.maps.LatLng(lat,lng);
mark = marker[a];
google.maps.event.addListener(mark, 'click', function(a) {
if (mark.infowindow) {
mark.infowindow.close();
}
mark.infowindow = new google.maps.InfoWindow({
content: contentString[marker.indexOf(this)]
});
mark.infowindow.open(map,mark);
});
}
【问题讨论】:
-
我认为你需要使用闭包。让我检查一下。
-
请减少 jsfiddle 示例中的代码,以便我们解决问题
标签: javascript jquery google-maps google-maps-api-3