2011-03-09 104 views
2

我有一个关于谷歌地图和我用来显示地图一个jQuery插件问题等谷歌地图 - 打开信息窗口的onmouseover代替ONCLICK

一切工作正常,标签定位,页面重新加载(与新的数据库查询根据新的地图坐标来检索新的数据......)

唯一我没有设法开始工作的是改变地图上信息窗口(气泡)的行为。

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

我正在使用的是这样的:http://gmap.nurtext.de/download.html 我知道这不是“最多tp日期”的事情,但它做我需要的(而且很容易)。

样品是在这里:http://www.divessi.com/code/geo/divecenter.php?lat=48.14&lon=11.73&s=600

基督教

回答

2

这应该工作。当throught标记循环,补充一点:

GEvent.addListener(gmarker, 'mouseover', function() { 
    gmarker.openInfoWindowHtml(opts.html_prepend + marker.html + opts.html_append); 
}); 

鼠标悬停,或任何其他的GMarker事件http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GMarker

编辑。我注意到您正在使用已弃用的Google Maps v2。我编辑了代码。基本上是你在那里。但是,在将标记添加到叠加层之前,一定要添加侦听器,以防万一。

EDIT2。为了避免对所有标记使用相同的信息窗口,换行代码的功能,从而创建一个封闭:(更多信息请阅读“臭名昭著的循环问题” http://robertnyman.com/2008/10/09/explaining-javascript-scope-and-closures/

function listenMarker (gmarker,marker) { 
    GEvent.addListener(gmarker, 'mouseover', function() { 
     gmarker.openInfoWindowHtml(opts.html_prepend + marker.html + opts.html_append); 
    }); 
} 

把函数末例如你的文件,并在循环内调用它。

+0

它几乎可以正常工作... 我加入你的代码 'GEvent.addListener(的GMarker, “鼠标悬停” 功能(){\t \t \t \t \t \t this.openInfoWindowHtml( “测试” + J + “ - ” + opts.html_prepend + marker.html + opts.html_append); \t \t \t \t \t \t});' 我改变gmarker.openInfoWindowHtml()来this.openInfoWindowHtml() - 现在的信息窗口会在正确的标记 - 。只是HTML内容始终是相同的(最后一个设置图标)...任何tipp? 来源在这里:http://www.divessi.com/code/js/jquery.gmap-1.1.1_CK.js(行185-190)... – 2011-03-10 09:58:44

+0

我在EDIT2中放入的新代码如何? – corbacho 2011-03-10 20:40:04

+0

酷 - 这解决了我的问题 - 感谢很多! – 2011-03-18 08:59:22

0

没有包含在样本中的js文件链接到您上述

/code/js/jquery.gmap-1.1.0_CK.js 

有几行代码中有相关的鼠标悬停事件,他们被注释掉:

//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 
//}); 

这是Google Maps JavaScript API V2的参考,插件正在使用: http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GMarker

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

我建议看看参考,然后尝试取消注释上面的一些行,如果您认为合适。

该API的第3版非常易于使用,以防你想在没有插件的情况下尝试它。

HTH

+0

评论行是(不成功)测试... – 2011-03-09 18:14:41

相关问题