【发布时间】:2011-06-21 07:18:39
【问题描述】:
在我的页面中,纬度、经度和信息窗口内容存在于名为 obj 的对象数组中。
所以如果我需要第一个对象的属性纬度,我可以调用 obj[0].latitude。
每个对象的 infoWindow 内容存储在 obj[i].text 中。
我正在使用下面的循环遍历 lat & long 值并显示标记和 infoWindows。
for (x=1; x var marker2 = new google.maps.Marker({
position : latlng1,
map : map,
icon : prevIcon
});
infowindow = new google.maps.InfoWindow();
info = obj[x].text;
google.maps.event.addListener(marker2, 'mouseover', function() {
infowindow.setContent(info);
infowindow.open(map, this);
});
}
上面的代码有效,但是所有 infoWindows 都显示了最后一个 obj[i].text 的内容。
如何将特定 infoWindow (obj[x].text) 的 infoWindow 内容仅关联到该 infoWindow 实例?
如果有人可以在不使用 jQuery 或任何其他外部库的情况下指出解决方案,那就更好了。
谢谢,
【问题讨论】:
-
Javascript 没有块作用域,您在每个循环中写入相同的变量。最后,只有 1 个 info 变量,包含您最后一个 obj 的文本。
-
你能提供一些工作演示吗?也许在jsfiddle.net
-
很抱歉,该页面包含用于从 MySQL 表中获取数据的 PHP 代码。它不适用于 jsfiddle :(
标签: javascript google-maps google-maps-api-3 infowindow