ruby-on-rails - 使用 gmaps4rails 将事件监听器添加到标记

标签 ruby-on-rails ruby ruby-on-rails-3 google-maps gmaps4rails

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

最佳答案

当然可以。

您应该在 gmaps4rails_callback javascript 函数中编写您的代码,以确保它在所有设置完成后执行。

然后循环markers js变量:Gmaps4Rails.markers

这个数组中每个标记的属性是:

  • 经度

  • 纬度

  • 包含 google 标记的 google_object

也就是说你可以做任何你想做的事。

作为旁注,该 map 也可以通过 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>

关于ruby-on-rails - 使用 gmaps4rails 将事件监听器添加到标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6035984/

相关文章:

ruby - 如何测试一个 block 是否被屈服?

ruby - 为什么在没有花括号的情况下字符串插值在 Ruby 中有效?

ruby-on-rails - 使用 pry-rails 时如何清理 rails 控制台输出?

ruby-on-rails - 使用 Paperclip 进行简单裁剪

ruby-on-rails - NGINX、 unicorn 、Mediatemple dv 服务器

ruby-on-rails - 未定义的方法 'env' 为 nil :NilClass

ruby-on-rails - 根据部分文件查找网页的url

ruby-on-rails - Rails 3.1 + Heroku : Can someone help me decipher this Heroku log?

ruby-on-rails-3 - 通过地理编码和在 map 上绘制在 Rails 中跟踪车辆

ruby-on-rails - Bootstrap 日期选择器禁用日期