jQuery Mobile和Google Maps API - 未在设备上加载地图

时间:2013-12-18 16:37:57

标签: jquery google-maps jquery-mobile

我正在构建一个移动应用程序,这是一个活动的程序。我想链接到一个页面,该页面显示谷歌地图上的事件位置,但无法弄清楚如何使其工作。

当您直接链接到页面(或重新加载页面)时,它会在浏览器和设备上正常加载,但是当我通过应用程序转到页面时,地图不会出现。我很确定它与通过ajax加载的页面有关。

非常感谢任何帮助。

我尝试过一些东西,但这是我现在的代码:

<!doctype html>
<html class="">
<head>
    <meta name="apple-mobile-web-app-capable" content="yes" /> 
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta charset="UTF-8">
    <title></title>
    <link href="css/style.css" rel="stylesheet">
    <script src="js/jquery-1.10.2.min.js"></script>

    <script src="js/jquery.mobile-1.3.2.min.js"></script>

    <link href="css/jquery.mobile.structure-1.3.2.min.css" rel="stylesheet">

    <style>
      html, body, #map-canvas {
        margin: 0;
        padding: 0;
        height: 100%;
      }

    </style>

    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

    <script>
        $(document).on("pageinit", "#map", function() {
                initialize();
          });

      var map;
        function initialize() {
          var mapOptions = {
            zoom: 17,
            center: new google.maps.LatLng(-27.617745,153.086779),
            mapTypeControl: false,
            zoomControl: false,
            panControl: false,
            streetViewControl: false,
            mapTypeId: google.maps.MapTypeId.SATELLITE
          };
          map = new google.maps.Map(document.getElementById('map-canvas'),
              mapOptions);
        }
    </script>
</head>
<body>


<div data-role="page" id="map">
  <div id="header" data-role="header">
    <a href="#" data-rel="back" >< Back</a>
  </div>
  <div data-role="content">
    <div id="map-content">
      <div id="map-canvas"></div>
    </div>
  </div>
</div>



</body>
</html>

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用页面创建事件而不是pageinit事件?

$(document).on("pagecreate", "#map", function() {
            initialize();
      });