谷歌地图为Rails:地图加载回调后

时间:2015-08-11 02:21:18

标签: javascript ruby-on-rails google-maps ruby-on-rails-4 gmaps4rails

如何在Gamaps for Rails中向infowindow添加回调函数?我需要为那个窗口中的按钮编写一个Ajax / JSON函数。

搜索并没有让我走得太远。有什么帮助吗?

<script type='text/javascript'>
  handler = Gmaps.build('Google');
  handler.buildMap({
    provider: {
      mapTypeId: google.maps.MapTypeId.SATELLITE
    },
    internal: { id: 'map' }
  },
  function(){
    markers = handler.addMarkers(<%= raw @map_hash.to_json %>);
    handler.bounds.extendWith(markers);
    handler.fitMapToBounds();
    // trying to add this function
    google.maps.event.addListenerOnce(handler.map, 'idle', function() {
    console.log('map loaded');
    $('.survey-response').click(function() {
      var id = $(this).attr('data-id');
      var response = $(this).attr('data-response');
      console.log(id + ' ' + response);
      $.getJSON('/potentials/' + id + '/' + response, function (data) {
        console.log(data);
      })
    })
  })
  });
</script>

从上方删除回调(在评论之后)并使用此代码:

google.maps.event.addListener(Gmaps.map, "click", function() {
  alert("You clicked the map.");
});

返回此错误:

Cannot read property '__e3_' of undefined

感谢。

1 个答案:

答案 0 :(得分:1)

您应该创建自己的构建器来处理信息窗as explained there

这样您就可以根据需要绑定js事件。