javascript - Mapbox.js 在 Ruby on Rails 中呈现空白

标签 javascript css ruby-on-rails mapbox

我是 Ruby on Rails、HTML 和 CSS 的初学者,我正在尝试在我的 Rails 应用程序中呈现 Mapbox.js map 。但是, map 没有显示。正如您在图片中看到的,缩放控件确实显示正确。 Mapbox not showing up 在尝试解决错误时,我遇到了 this常问问题。我已确认我的访问 token 、 map ID 和帐户使用限制不是问题所在。

以下是我的代码:

<script src='https://api.mapbox.com/mapbox.js/v3.0.1/mapbox.js'></script>
<link href='https://api.mapbox.com/mapbox.js/v3.0.1/mapbox.css' rel='stylesheet'/>

<div class="content">
  <% if @points[@unit.name] != nil && @points[@unit.name].length %>

      <div id='map' style="
          position: relative;
          margin-left: -10px;
          bottom: 0;
          width: 700px;
          height: 700px;">
      </div>

      <script type='text/javascript'>
          L.mapbox.accessToken = 'heres-my-access-token';
          var map = L.mapbox.map('map', 'mapbox.satellite').setView([52.214360, 6.860573], 8);
      </script>

  <% end %>

... other <div>s

</div>

<script>
    $('map').show();
    map.invalidateSize();
</script>

我在一个相当大的应用程序中工作,所以问题可能是由样式或其他原因引起的。我根据 FAQ 提示进行了检查,页面上的元素并未在任何地方设置为最初“隐藏”。我不太确定我的 invalidateSize() 命令是否放置正确......

我现在几乎陷入困境 - 有人有其他想法来解决这个问题吗?

最佳答案

$('map').show(); 应该是 $('#map').show(); 吗?

您还可以通过仅在文档就绪时运行它来检查它是否触发得太快,即

$(function() {
  $('#map').show();
  map.invalidateSize();
});

关于javascript - Mapbox.js 在 Ruby on Rails 中呈现空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42672883/

相关文章:

javascript - 当 &lt;script&gt; 放置在文件末尾时,DataTables 不起作用

javascript - Dojo 防止来自子节点的 onclick 事件

html - 底部带有元数据的 Css flex div 拉伸(stretch)到相同的高度

ruby-on-rails - rails ,设计 : unknown attribute 'password' for User

javascript - 如何从由 image_tag 等 Rails 助手生成的 HTML 中选择 DOM 元素?

ruby-on-rails - 如何使用 Ruby 测试变量是否包含在整数列表中?

javascript - 依赖项的非确定性行为 - nodejs

javascript - 将设置添加到魅力 Windows 8 应用程序

php - 添加链接到图像 php

CSS 无序列表 : Why Does One Technique Work But Another Doesn't Work?