jQuery Mobile不会加载OpenLayers Map

时间:2015-06-14 16:59:06

标签: javascript jquery html mobile

我从jQueryMobile开始,想要使用OpenLayers显示地图。但是我有一个奇怪的问题。这是几乎可以工作的代码。对不起,我无法做一个小提琴,但你可以通过复制/粘贴记事本或其他任何东西轻松测试。

<!DOCTYPE html>
<html>
<head>

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>


<style type="text/css">
  html ,body {
    margin: 0;
    padding: 0;
    height: 100%;
}
.ui-content {
   padding: 0;
}

#pageone, #pageone .ui-content, #basicMap {
   width: 100%;
   height: 100%;
}
</style>
</head>
<body>


<div data-role="page" id="pageone">
  <div data-role="main" class="ui-content">
    <div id="basicMap"></div>
  </div>
</div> 

<script>
      function init() {
map = new OpenLayers.Map("basicMap", {
    controls: [
               new OpenLayers.Control.Navigation(),
               new OpenLayers.Control.ArgParser(),
               new OpenLayers.Control.Attribution()
           ]
       });
var mapnik         = new OpenLayers.Layer.OSM();
var fromProjection = new OpenLayers.Projection("EPSG:4326");   // Transform from WGS 1984
var toProjection   = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
var position       = new OpenLayers.LonLat(7.55785346031189,50.3625329673905).transform( fromProjection, toProjection);
var zoom           = 3;

map.addLayer(mapnik);
map.setCenter(position, zoom );

var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);

var marker = new OpenLayers.Marker(position);

marker.events.register("click", map , function(e){ alert("click");
});

markers.addMarker(marker);
}


  $(document).on("pagecreate","#pageone",init()); 
</script>

</body>
</html>

此代码不显示地图。

现在,如果你取消以下一行:

<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

您可以看到地图正在显示。

有关如何解决此问题的任何想法?因为我认为它可以很容易地解决但却看不出来。

谢谢。

1 个答案:

答案 0 :(得分:0)

我知道这是愚蠢的,如果它可以引起某些人的兴趣,那css应该是这样的:

self.kind

并致电JS:

self.kind

不知道为什么会这样。