【发布时间】:2014-03-01 23:37:01
【问题描述】:
我在 turbolinks 加载的 .js 文件中使用 Google Maps API V3。
在$('#google-map')元素加载时触发地图渲染:
function initGoogleMap() {
...
var map = new google.maps.Map($('#google-map').get(0), mapOptions);
...
}
$('#google-map').ready(function() {
initGoogleMap();
});
问题是initGoogleMap()运行时,它使用$('#google-map')的宽高来渲染地图,此时宽高为0。
宽度和高度在以控制器命名的 .scss 文件中定义:
.map {
height: 300px;
width: 400px;
#google-map {
height: 300px;
width: 400px;
}
}
我使用的是 rails 的约定,所以在我的视图模板中没有提及 .js 文件名或 .scss 文件名。
如何确保脚本仅在样式表加载后运行?
【问题讨论】:
标签: javascript jquery css ruby-on-rails turbolinks