我正在开发一个页面,该页面使用 Javascript httpObject 获取代码并使用它来更新页面上的两个元素 - 一个谷歌地图和一个列出标记指向的内容的 DIV。
那一点效果很好。问题是,当我创建标记时,我通过 for 循环来完成此操作,并在每个循环中向标记添加侦听器。然后,当我测试页面时,我发现每个标记都会发生同样的情况。
将鼠标悬停在标记上应更改 DIV 相应位的边框颜色。相反,每个标记都会更改最后一位的边界。似乎每次我添加侦听器时,我也会覆盖之前添加的标记的侦听器。
我知道这与 Google Maps API 保留标记的身份有关,即使您在 Javascript 中创建了一个新标记。我不明白如何解决它 - 我尝试在循环外创建一个数组,然后更改
var newMarker = new GMarker(newLatLng);
和
newMarker[count] = new GMarker(newLatLng);
但它仍然不起作用。
帮助我,StackOverflow。你是我唯一的希望。 :)
编辑:更多代码
for (count=0;count<=LatArray.length;count++)
{
thisLat = LatArray[count];
thisLong = LongArray[count];
thisHTML = HTMLArray[count];
newLatLng = new GLatLng(thisLat, thisLong, true);
if (mapBounds.containsLatLng(newLatLng))
{
//alert(count);
var dinnerNumber = "dinner_"+count;
newMarkers[count] = new GMarker(newLatLng);
map.addOverlay(newMarkers[count]);
GEvent.addListener(newMarkers[count],'mouseover',function(){document.getElementById(dinnerNumber).style.borderColor = '#000000';
});
}// for