我一直在用的OpenLayers和jQuery Mobile的一個項目。無論何時我編寫代碼以在沒有Jquery Mobile的情況下運行,OpenLayers都能很好地工作。當我把它們放在一起時,問題就出現了。地圖從不加載。我究竟做錯了什麼?有什麼我必須考慮到我失蹤?的OpenLayers 2.11和jQuery移動1.0.1工作不在一起
這裏是我寫的代碼:
<html>
<head>
<meta name="viewport" content="width=320; user-scalable=no" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>ISEC App</title>
<link rel="stylesheet" href="jquery.mobile/jquery.mobile-1.0.1.min.css" />
<link rel="stylesheet" href="index.css" />
<script src="jquery.mobile/jquery-1.6.4.min"></script>
<!-- If I comment this line, everything works fine -->
<script src="jquery.mobile/jquery.mobile-1.0.1.min.js"></script>
<script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"> </script>
<script type="text/javascript" src="barcodescanner.js"></script>
<script type="text/javascript" charset="utf-8" src="index.js"></script>
<script type="text/javascript" src="OpenLayers.js"></script>
<script type="text/javascript" src="lib/mapa.js"></script>
</head>
<body>
<div style="width:100%; height:100%" id="mapas"></div>
<script defer="defer" type="text/javascript">
var mapa = new OpenLayers.Map('mapas');
var wms = new OpenLayers.Layer.OSM(
"Isec", "http://www.isec.com.co/osm/tiles/z${z}/ln${x}/lt${y}.png",
{numZoomLevels: 18}
);
mapa.addLayer(wms);
mapa.setCenter(lonLatT(-74.1185,4.6867), 14);
alert("*/*/*");
function lonLatT(lon, lat){
return new OpenLayers.LonLat(lon,lat).transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913"));
}
</script>
</body>
<html>
如果我刪除提及JavaScript文件,它的工作原理jquery.mobile。我不明白它爲什麼這樣工作。有任何想法嗎?
感謝Codaniel。我按照你的建議重寫和重新組織了代碼,但我仍然沒有看到地圖。我可以看到警報功能的消息,但沒有地圖。如果不包括jquery-mobile庫,地圖會加載,但我不會看到漂亮的外觀和感覺。 jquery-mobile和OpenLayers有沒有兼容性問題?我還能做什麼? – user1296685 2012-03-28 16:02:53
嗯,也許這是一個衝突。我不確定。我對開放圖層沒有太多經驗。 – codaniel 2012-03-28 16:20:25