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

发布于 2024-11-08 01:20:40 字数 181 浏览 1 评论 0原文

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

I am developing an application that uses gmaps4rails (https://github.com/apneadiving/Google-Maps-for-Rails). I want to add an event listener to the marker so that it creates a visualization next to the map (as well as displaying an info window on the map). Is it possible to add an event listener for each marker using gmaps4rails?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迎风吟唱 2024-11-15 01:20:41

当然有可能。

您应该在 gmaps4rails_callback javascript 函数中编写代码,以确保在一切设置完毕后执行该代码。

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

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

  • longitude

  • latitude

  • 包含 google 标记的 google_object

这说明你可以做任何你想做的事情。

附带说明一下,地图也可以通过 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>

Of course it's possible.

You should write your code in the gmaps4rails_callback javascript function to be sure it's executed when everything is setup.

And then loop the markers js variable: Gmaps4Rails.markers

The attributes of each marker in this array are:

  • longitude

  • latitude

  • google_object containing the google marker

That said you can do whatever you want.

As a side note, the map is also available doing Gmaps4Rails.map.

In general, read the gmaps4rails.js file, it's well documented (I hope!).

EDIT:

The problem you explain in the comments is weird, it works perfectly for me when I use:

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

I guess you should try to use a more traditional for loop like:

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文