【发布时间】:2011-05-10 01:08:21
【问题描述】:
我正在制作一张包含多个预先存在的多边形的地图。多边形被勾勒出来并用红色填充。
鼠标悬停时,infoWindow 显示多边形的标题,鼠标移出时 infoWindow 消失,这是正确的。
我添加了一个单击事件侦听器,以便在单击时多边形被勾勒出轮廓并用黄色填充以指示“当前”多边形。
mouseout 和 click 事件有两个问题:
如果用户单击第二个多边形,我希望第一个选定的多边形返回到原来的红色填充/轮廓。
click 事件侦听器还使 infoWindow 出现在选定的多边形上,但是一旦用户将鼠标悬停或鼠标悬停在另一个多边形上,infoWindow 就会消失,因为它被 mouseout 事件取消。我希望 infoWindow 保持不变,然后我可以为鼠标悬停时出现的任何其他 infoWindows 添加 z-index。
代码:
var overlay = new google.maps.Polygon({
paths: verticesArray,
strokeColor: "#FF0000",
strokeOpacity: 0.5,
strokeWeight: 1,
fillColor: "#FF0000",
fillOpacity: 0.20,
position: cent,
map:map });
function attachInfoWindow(overlay, number) {
var infowindow = new google.maps.InfoWindow({ content: siteNames[number]});
google.maps.event.addListener(overlay, 'mouseover', function() { infowindow.open(map, overlay); });
google.maps.event.addListener(overlay, 'mouseout', function() { infowindow.close(map, overlay); });
google.maps.event.addListener(overlay, 'click', function() {
infowindow.open(map, overlay);
this.setOptions({ strokeColor: '#ffd100', fillColor:"#ffd100", fillOpacity:0.5,
});
});
我不擅长 javascript,不知道如何解决这些 click 和 mouseout 事件问题。
如果需要更多信息或是否需要澄清,请告诉我。
MTIA。
【问题讨论】:
标签: javascript google-maps google-maps-api-3