有人能帮我解释一下为什么我不能让它工作吗?我正确地生成了所有的位置,但是,它不会生成信息框。为什么会这样?有人能帮我吗?
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(47.6062, -122.3321), 8);
var wa_locations = new Array(new Array("Seattle", "47.6062", "-122.3321", "###-###-####", "###-###-####"),
new Array("Bellevue", "47.6104", "-122.2007", "###-###-####", "###-###-####"),
new Array("Tacoma", "47.2529", "-122.4443", "###-###-####", "###-###-####"),
new Array("Everett", "47.9790", "-122.2021", "###-###-####", "###-###-####"));
for(var i = 0; i < wa_locations.length; i++)
{
var point = new GLatLng(wa_locations[i][1], wa_locations[i][2]);
map.addOverlay(new GMarker(point));
GEvent.addListener(point, "click", function()
{
point.openInfoWindowHtml("<b>" + wa_locations[i][0] + "</b><br/>Sales: " + wa_locations[i][3] + "<br/>Helpdesk: " + wa_locations[i][4] + "");
});
} 发布于 2010-04-07 18:50:35
您正在将侦听器添加到点,而不是添加到标记。此外,从你的评论来看,你似乎有一个JavaScript关闭的问题。您可以使用bindInfoWindowHtml来避免侦听器和闭包。下面是调整后的最后部分,使用了标记和bindInfoWindowHtml:
for(var i = 0; i < wa_locations.length; i++)
{
var point = new GLatLng(wa_locations[i][1], wa_locations[i][2]);
var marker = new GMarker(point);
marker.bindInfoWindowHtml("<b>" + wa_locations[i][0] + "</b><br/>Sales: " + wa_locations[i][3] + "<br/>Helpdesk: " + wa_locations[i][4] + "");
map.addOverlay(marker);
} https://stackoverflow.com/questions/2589813
复制相似问题