7

我有一个带有 InfoWindows 标记的页面,我在 Click 上打开了该页面。我决定在 MouseOver 上打开正在工作的 InfoWindows。

但是我发现必须将鼠标移动到 InfoWindow 的十字路口才能关闭它,这对于这些懒惰的互联网访问者来说有点苛刻。所以我在 Marker 的 Click 上添加了一个 Close 事件,该事件也有效。

我无法弄清楚的是能够在标记单击时重新打开信息窗口,而不必为了能够重新将鼠标悬停在标记上而必须鼠标悬停。

我的代码:

google.maps.event.addListener(CalMarker, 'mouseover', function() {
    infowindow.setContent(contentStringCal);
    infowindow.open(map,CalMarker);
});
google.maps.event.addListener(CalMarker, 'click', function() {
    infowindow.close(map,CalMarker);
});

任何人都可以通过单击标记帮助我重新打开窗口吗?

提前致谢

PS:不能在帖子开头说“嗨”,这很奇怪。

4

1 回答 1

10

尝试这个:

google.maps.event.addListener(CalMarker, 'mouseover', function() {
    //open the infowindow when it's not open yet
    if(contentStringCal!=infowindow.getContent())
    {
      infowindow.setContent(contentStringCal);
      infowindow.open(map,CalMarker);
    }
});

google.maps.event.addListener(CalMarker, 'click', function() {
    //when the infowindow is open, close it an clear the contents
    if(contentStringCal==infowindow.getContent())
    {
      infowindow.close(map,CalMarker);
      infowindow.setContent('');
    }
    //otherwise trigger mouseover to open the infowindow
    else
    {
      google.maps.event.trigger(CalMarker, 'mouseover');
    }
});

//clear the contents of the infwindow on closeclick
google.maps.event.addListener(infowindow, 'closeclick', function() {
      infowindow.setContent('');
});

演示:http: //jsfiddle.net/doktormolle/JXqLa/

于 2012-10-26T11:07:19.390 回答