1
我正在开发一个使用gmaps4rails(https://github.com/apneadiving/Google-Maps-for-Rails)的应用程序。我想添加一个事件监听器到标记,以便它在地图(以及在地图上显示信息窗口)旁边创建一个可视化。是否有可能使用gmaps4rails为每个标记添加事件侦听器?使用gmaps4rails将标记添加到标记
我正在开发一个使用gmaps4rails(https://github.com/apneadiving/Google-Maps-for-Rails)的应用程序。我想添加一个事件监听器到标记,以便它在地图(以及在地图上显示信息窗口)旁边创建一个可视化。是否有可能使用gmaps4rails为每个标记添加事件侦听器?使用gmaps4rails将标记添加到标记
当然这是可能的。
您应该在gmaps4rails_callback
javascript函数中编写代码以确保在设置所有内容时执行它。
然后循环的markers
JS变量:Gmaps4Rails.markers
每个标记的此数组中的属性有:
经度
纬度
google_object含有谷歌marker
这就是说你可以做任何你想做的事情。
作为一个附注,地图也可以做Gmaps4Rails.map
。
一般来说,阅读gmaps4rails.js
文件,它有很好的文档记录(我希望!)。
编辑:
您在评论中解释的问题是奇怪的,它完美对我来说,当我使用:
google.maps.event.addListener(Gmaps4Rails.markers[0].google_object, 'click', function(object){ alert("hello"); });
我猜你应该尝试使用更传统的for
循环,如:
<script type="text/javascript">
function gmaps4rails_callback() {
function say_yo(arg) { return function(){alert('yo '+ arg + '!');};};
for (var i = 0; i < Gmaps4Rails.markers.length; ++i) {
google.maps.event.addListener(Gmaps4Rails.markers[i].google_object, 'click', say_yo(i));
}
}
</script>
我试图 <脚本类型= “文本/ JavaScript的”> \t功能gmaps4rails_callback() \t { \t \t为(在Gmaps4Rails.markers米) \t \t { \t \t \t google.maps.event.addListener(米, '点击',函数(对象){ \t \t \t警报( “你好” ); \t \t \t}); \t \t} \t} 但从未标记显示在地图上。我试图把在HTML脚本的头部这段代码/在身体的开始/在身体的结束,但所有这些都没有工作.. – hailey 2011-05-18 10:51:06
阅读我在我的答案中写道,你可以通过执行访问谷歌标记:m.google_object – apneadiving 2011-05-18 10:57:07
我用m.google_object替换m:现在标记显示在地图上,但它似乎是侦听器未添加到标记 - 它仍然只显示从模型生成的信息窗口.. – hailey 2011-05-18 12:38:52