我有一个关于谷歌地图和jquery插件的问题,我用它来显示地图等。
一切正常,标记定位,重新加载页面(使用新的数据库查询根据新的地图坐标检索新数据等等。)
我唯一无法上班的事情就是改变地图上信息窗口(气泡)的行为。
我希望他们打开“onMouseOver”而不是“onClick” - 你能帮助我吗?
我正在使用的是:http://gmap.nurtext.de/download.html 我知道这不是“最新的日期”事情,但它做了我需要的事情(而且很容易)。
示例在这里:http://www.divessi.com/code/geo/divecenter.php?lat=48.14&lon=11.73&s=600
基督教
答案 0 :(得分:2)
这应该有效。循环标记时,添加:
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
EDIT。我注意到您使用的是已弃用的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);
});
}
例如,将函数放在文件的末尾,然后在循环内调用它。
答案 1 :(得分:0)
您链接到上面的示例中包含一个js文件
/code/js/jquery.gmap-1.1.0_CK.js
有几行与mouseover事件相关的代码,它们被注释掉了:
//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