Google maps jQuery Mobile 1.0.1谷歌地图不';重新加载刷新工作后,不会第一次显示地图
我的问题是每次我打开网站;第一次地图不显示时,在重新加载/引用后,它工作并显示地图 以下是我的谷歌地图代码:Google maps jQuery Mobile 1.0.1谷歌地图不';重新加载刷新工作后,不会第一次显示地图,google-maps,jquery-mobile,google-maps-api-3,Google Maps,Jquery Mobile,Google Maps Api 3,我的问题是每次我打开网站;第一次地图不显示时,在重新加载/引用后,它工作并显示地图 以下是我的谷歌地图代码: <script type="text/javascript"> var map; var infowindow; function initialize(position) { //var pyrmont = new google.maps.LatLng(48.195201,16.369547); var pyrmont = new google
<script type="text/javascript">
var map;
var infowindow;
function initialize(position) {
//var pyrmont = new google.maps.LatLng(48.195201,16.369547);
var pyrmont = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map = new google.maps.Map(document.getElementById('map'), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: pyrmont,
zoom: 15
});
var a = new google.maps.Marker({position: pyrmont,map: map,icon:'catal.png'});
var request = {
location: pyrmont,
radius: 500,
types: ['restaurant']
};
infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
service.search(request, callback);
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
}
if (status == google.maps.places.PlacesServiceStatus.ZERO_RESULTS){
alert('zero results near this location');
}
}
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent( place.name
+'<br/>'+place.vicinity);
infowindow.open(map, this);
});
}
google.maps.event.addDomListener(window, 'load', function(){
navigator.geolocation.getCurrentPosition(initialize);
});
</script>
var映射;
var信息窗口;
函数初始化(位置){
//var pyrmont=new google.maps.LatLng(48.195201,16.369547);
var pyrmont=new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map=new google.maps.map(document.getElementById('map'){
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:皮尔蒙特,
缩放:15
});
var a=new google.maps.Marker({位置:pyrmont,地图:map,图标:'catal.png'});
var请求={
地点:皮尔蒙特,
半径:500,
类型:[“餐厅”]
};
infowindow=new google.maps.infowindow();
var service=newgoogle.maps.places.PlacesService(地图);
服务搜索(请求、回调);
}
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i ”+地点附近);
打开(地图,这个);
});
}
google.maps.event.addDomListener(窗口'load',函数(){
navigator.geolocation.getCurrentPosition(初始化);
});
下面是我如何在jquery中使用它:
<div data-role="page" id="restaurant">
<div data-role="header">
<a href="index.html" data-icon="arrow-l">Back</a>
<h1>Restaurants</h1>
</div>
<div data-role="content">
<div id="map" style="width:400px; height:400px;"></div>
</div>
</div>
餐厅
您正在等待窗口。加载要激发的
事件,该事件只会在整页刷新时激发。以下是违规代码:
google.maps.event.addDomListener(window, 'load', function(){
navigator.geolocation.getCurrentPosition(initialize);
});
您可以使用jQuery绑定到#restautant
页面的pageinit
事件:
$(document).delegate('#restaurant', 'pageinit', function () {
navigator.geolocation.getCurrentPosition(initialize);
});
这将在初始化#restaurant
伪页面时触发initialize()
以下是pageinit
事件(以及所有其他jQuery移动事件)的文档:hmm抱歉,我是一个新手,那么我应该在哪里添加这些行呢?第一个代码段来自您的代码,它应该被类似于第二个代码段的东西替换(确切的代码应该可以工作)。两者之间的区别在于,第二种方法使用事件委托,并绑定到更适合应用程序的事件。