我正在尝试应用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 turbolink并删除了“需要turbolinks&#39;来自application.js,现在它正常工作。
答案 0 :(得分:0)
你好像已经回答了你自己的问题,但是万一其他人看一下:当你使用turbolinks时,在页面之间不会发生document.ready--实际上,turbolinks将你的整个应用程序视为一个页面。 / p>
你的问题有两个解决方案:一个,摆脱你所做的turbolinks;或者,将js附加到特定的turbolink事件,例如page:load。