我正在开发一个使用gmaps4rails的应用程序(https://github.com/apneadiving/Google-Maps-for-Rails)。我想在标记中添加一个事件监听器,以便在地图旁边创建一个可视化 (以及在地图上显示一个信息窗口)。是否可以使用gmaps4rails为每个标记添加事件监听器?
答案 0 :(得分:5)
当然有可能。
您应该在gmaps4rails_callback
javascript函数中编写代码,以确保在所有内容都已设置时执行。
然后循环markers
js变量:Gmaps4Rails.markers
此数组中每个标记的属性为:
经度
纬度
包含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>