我正在使用Javascript httpObject获取代码的页面,并使用它来更新页面上的两个元素 - 谷歌地图和列出标记指向的东西的DIV 。向Google地图标记动态添加听众
这位工作正常。问题是,当我创建标记时,我通过for循环来完成,并且在每个循环中将侦听器添加到标记中。然后,当我测试页面时,我发现每个标记都会发生同样的情况。
将鼠标悬停在标记上应改变DIV相应位的边框颜色。相反,每个标记都会更改最后一位的边界。似乎每次添加监听器时,我都会覆盖之前添加的标记的监听器。
我知道这是为了处理Google Maps API保留标记的身份,即使您在Javascript中创建新标记时也是如此。我不明白怎么去解决它 - 我试图创建循环外的数组,并改变
var newMarker = new GMarker(newLatLng);
与 newMarker [统计] =新的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
+1引用星球大战(非垃圾一个) – karim79 2009-08-02 22:40:44
我们可以有更大的代码示例吗?很难分辨出问题所在。 – karim79 2009-08-02 22:48:17