1

Ruby on Rails アプリでユーザーの位置を緯度と経度で表示する Google Maps API v.3 を適用しようとしています。しかし、マップが表示されるページにアクセスすると、ページを更新するまで空白の 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 ターボリンクを削除し、application.js から「ターボリンクが必要」を削除したところ、正しく動作するようになりました。

4

1 に答える 1

0

あなたは自分の質問に答えたようですが、他の人がこれを調べた場合に備えて: ターボリンクを使用している場合、ページ間で document.ready は発生しません。基本的に、ターボリンクはアプリ全体を 1 つのページとして扱います。

あなたの問題には2つの解決策があります.1つは、ターボリンクを取り除くことです。または 2 つ、js を page:load などの特定のターボリンク イベントにアタッチします。

于 2015-05-23T20:41:24.917 に答える