Javascript 谷歌地图-在MouseOver上打开信息窗口,而不是单击

Javascript 谷歌地图-在MouseOver上打开信息窗口,而不是单击,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,我有一个关于谷歌地图和我用来显示地图的jquery插件的问题,等等 所有工作正常,标记定位,重新加载页面(使用新的db查询根据新地图坐标检索新数据,等等…) 我唯一没有设法去做的事情就是改变地图上信息窗口(气泡)的行为 我希望他们打开“onMouseOver”而不是“onClick”-你能帮我吗 我使用的是: 我知道这不是“最新的tp”,但它满足了我的需要(而且很简单) 样本如下: 克里斯蒂安这应该行得通。在标记之间循环时,添加以下内容: GEvent.addListener(gmarker,

我有一个关于谷歌地图和我用来显示地图的jquery插件的问题,等等

所有工作正常,标记定位,重新加载页面(使用新的db查询根据新地图坐标检索新数据,等等…)

我唯一没有设法去做的事情就是改变地图上信息窗口(气泡)的行为

我希望他们打开“onMouseOver”而不是“onClick”-你能帮我吗

我使用的是: 我知道这不是“最新的tp”,但它满足了我的需要(而且很简单)

样本如下:


克里斯蒂安

这应该行得通。在标记之间循环时,添加以下内容:

GEvent.addListener(gmarker, 'mouseover', function() {
   gmarker.openInfoWindowHtml(opts.html_prepend + marker.html + opts.html_append);   
});
鼠标悬停,或任何其他GMarker事件

编辑。我注意到您正在使用不推荐使用的Google Maps v2。我编辑了代码。基本上就是你在那里得到的。但在将标记添加到覆盖之前,请确保添加侦听器,以防万一

编辑2。为了避免所有标记都使用相同的infowindow,请将代码包装到函数中,以便创建闭包:(有关更多信息,请阅读“臭名昭著的循环问题”)


例如,将函数放在文件的末尾,并在循环中调用它。

上面链接的示例中包含一个js文件

/code/js/jquery.gmap-1.1.0_CK.js
其中有几行代码与mouseover事件有关,它们被注释掉了:

//GEvent.addListener(gmarker,"mouseover", function() {
// this.openInfoWindowHtml(myHtml[j]);
//}); 

这是插件使用的Google Maps Javascript API V2的参考:

您可以看到插件使用的方法的定义

我建议您先看一下参考资料,然后在您认为合适的情况下尝试取消对上面几行的注释

如果您想在没有插件的情况下尝试,API的第3版非常容易使用


HTH

它几乎可以工作。。。我添加了您的代码
GEvent.addListener(gmarker,“mouseover”,function(){this.openInfoWindowHtml(“test”+j+“-”+opts.html\u prepend+marker.html+opts.html\u append);})我将gmarker.openInfoWindowHtml()更改为this.openInfoWindowHtml()-现在信息窗口显示在正确的标记处-。只是HTML内容总是相同的(最后设置的图标)。。。有小费吗?资料来源如下:(第185-190行)。。。
//GEvent.addListener(gmarker,"mouseover", function() {
// this.openInfoWindowHtml(myHtml[j]);
//}); 
//GEvent.addListener(marker, "mouseover", function() {this.openInfoWindowHtml("no." + j + opts.markers[j]);});
//GEvent.addListener(gmarker,"mouseover", function() {
// this.openInfoWindowHtml("test " + j); //+ ": " + opts.html_prepend + marker.html + opts.html_append
//});