1

我正在尝试应用 Google Maps API v.3,它在 Ruby on Rails 应用程序中按纬度和经度显示用户的位置。但是当我访问一个应该出现地图的页面时,我有空白的 div,直到我用它刷新页面。然后地图正确显示。这是我使用的脚本。

(function() {
  $(document).ready(function() {
    var map, mapOptions, marker, myLatlng;
    myLatlng = new google.maps.LatLng($("p#latitude").html(), $("p#longitude").html());
    mapOptions = {
      zoom: 16,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
    return marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title: "Ahoy!"
    });
  });

我还包括<script src="http://maps.google.com/maps/api/js?sensor=false" style=""></script><script src="http://maps.gstatic.com/intl/en_us/mapfiles/api-3/14/11/main.js" type="text/javascript"></script>

可能是什么问题?

我从 Gemfile 中删除了 gem turbolinks 并从 application.js 中删除了“require turbolinks”,现在它可以正常工作了。

4

1 回答 1

0

您似乎已经回答了自己的问题,但以防万一其他人查看:当您使用 turbolinks 时,页面之间不会出现 document.ready ——本质上,turbolinks 将您的整个应用程序视为一个页面。

您的问题有两种解决方案:一是摆脱您所做的涡轮链接;或者二,将您的 js 附加到特定的 turbolink 事件,例如 page:load。

于 2015-05-23T20:41:24.917 回答