使用gmaps4rails为标记添加事件侦听器

1 ruby google-maps ruby-on-rails ruby-on-rails-3 gmaps4rails

我正在开发一个使用gmaps4rails的应用程序(https://github.com/apneadiving/Google-Maps-for-Rails).我想在标记中添加一个事件监听器,以便在地图旁边创建一个可视化(以及在地图上显示信息窗口).是否可以使用gmaps4rails为每个标记添加事件监听器?

apn*_*ing 5

当然有可能.

您应该在gmaps4rails_callbackjavascript函数中编写代码,以确保在设置完所有内容后执行.

然后循环markersjs变量:Gmaps4Rails.markers

此数组中每个标记的属性为:

  • 经度

  • 纬度

  • 包含google标记的google_object

那说你可以做任何你想做的事.

作为旁注,地图也可以使用Gmaps4Rails.map.

一般来说,阅读gmaps4rails.js文件,它有详细记录(我希望!).

编辑:

你在评论中解释的问题很奇怪,当我使用时,它对我来说非常适合:

google.maps.event.addListener(Gmaps4Rails.markers[0].google_object, 'click', function(object){ alert("hello"); });
Run Code Online (Sandbox Code Playgroud)

我猜你应该尝试使用更传统的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>
Run Code Online (Sandbox Code Playgroud)