谷歌地图:在鼠标悬停时打开InfoWindow,关闭&重新打开点击

时间:2012-10-26 09:51:09

标签: google-maps google-maps-api-3 mouseover infowindow

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

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

我无法解决的问题是能够重新打开 InfoWindow上的Marker Click而不是鼠标输出才能在标记上重新鼠标悬停。

我的代码:

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:无法在帖子的开头说“嗨”,这很奇怪。

1 个答案:

答案 0 :(得分:9)

试试这个:

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/