我给出的所有Google地图标记都是相同的infoText。 任何想法为什么infowindow.setContent('hi' + i)
有效,但不是infowindow.setContent(infoText)
? 当使用infoText
变量作为内容时,我的所有20个标记都获得相同的内容。 (停车场20号)forEach循环中覆盖的变量
编辑:更新了代码,以一个工作的例子。
49 for (i = 0; i < locations.length; i++) {
50 if (locations[i]['available'] === true) {
51 icon = 'http://www.google.com/mapfiles/ms/micons/green.png';
52 text = 'Available Parking nr ' + i;
53 generateInfoBox(text, icon)
54 } else {
55 icon = small_red_circle;
56 text = 'Parking nr ' + i;
57 generateInfoBox(text, icon)
58 }
59
60 function generateInfoBox(text, icon) {
61 marker = new google.maps.Marker({
62 position: new google.maps.LatLng(locations[i]['lat'], locations[i]['lng']),
63 map: map,
64 icon: icon
65 });
66
67 google.maps.event.addListener(marker, 'click', (function(marker, i) {
68 return function() {
69 infowindow.setContent(text);
70 infowindow.open(map, marker);
71 }
72 })(marker, i));
73 }
是的,当我清理我的代码并将其发布到此处时,infoText中的差异消失了。现在更新原始帖子。 :-) – martins