Javascript Colorbox回调在代码完成执行之前加载帧
我正在使用jquery颜色框加载google地图静态图像。颜色框的标题应显示地图上显示的位置的地址。然而,在显示标题之前,我很难获得地址。我正在使用这里找到的getReverseGeoCode函数:获取给定纬度和经度坐标(不断更新)的地址 我的代码:Javascript Colorbox回调在代码完成执行之前加载帧,javascript,jquery,callback,colorbox,Javascript,Jquery,Callback,Colorbox,我正在使用jquery颜色框加载google地图静态图像。颜色框的标题应显示地图上显示的位置的地址。然而,在显示标题之前,我很难获得地址。我正在使用这里找到的getReverseGeoCode函数:获取给定纬度和经度坐标(不断更新)的地址 我的代码: $('.locationLink').unbind().click(function (e) { e.preventDefault(); mapImageURL = "Link To The Map Static Image with
$('.locationLink').unbind().click(function (e) {
e.preventDefault();
mapImageURL = "Link To The Map Static Image with lat and long as parameters"
$.colorbox({
iframe:false,
width:"500px",
height:"450px",
html:"<img src = "+mapImageUrl+"></p>",
onOpen: function(){
getReverseGeocodingData(lat,long, function(address){
formattedAddress = address;
});
},
title:function(address){
return formattedAddress;
}
});
});
function getReverseGeocodingData(lat, lng, callback) {
var latlng = new google.maps.LatLng(lat, lng);
// This is making the Geocode request
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'latLng': latlng }, function (results, status) {
if (status !== google.maps.GeocoderStatus.OK) {
alert(status);
}
// This is checking to see if the Geoeode Status is OK before proceeding
if (status == google.maps.GeocoderStatus.OK) {
address = (results[0].formatted_address);
console.log('Address is:' + address);
callback(address);
}
});
}
$('.locationLink')。解除绑定()。单击(函数(e){
e、 预防默认值();
mapImageURL=“使用lat和long as参数链接到地图静态图像”
$彩色盒({
iframe:false,
宽度:“500px”,
高度:“450px”,
html:“”,
onOpen:function(){
getReverseGeocodingData(横向、纵向、函数(地址){
格式化地址=地址;
});
},
标题:职能(地址){
返回格式化的地址;
}
});
});
函数getReverseGeocodingData(lat、lng、回调){
var latlng=新的google.maps.latlng(lat,lng);
//这是发出地理编码请求
var geocoder=new google.maps.geocoder();
geocoder.geocode({'latLng':latLng},函数(结果,状态){
if(status!==google.maps.GeocoderStatus.OK){
警报(状态);
}
//这是在继续之前检查Geoeode状态是否正常
if(status==google.maps.GeocoderStatus.OK){
地址=(结果[0]。格式化的地址);
console.log('地址为:'+地址);
回拨(地址);
}
});
}
问题是lat和long不断更新(并且颜色框在打开时显示正确的静态图像),但是地址“滞后”(显示最后一个地址,而不是最近的地址)
经过一些调试后,我得出结论,当colorbox加载时,getReverseGeoCode函数尚未完成执行(因此它不显示最近的地址,而是显示最后一个lat和长期使用的地址)
我的问题是,在colorbox加载标题之前,如何确保GetReverseGeoCode函数已完成执行并获得最新地址
真的很感谢大家的帮助,如果我错过了一个括号,对不起,新的堆栈溢出
Peter您是否能够从colorbox中提取
getReverseGeocodingData
函数调用,以便它加载正确的信息,然后打开colorbox?您的意思是在初始化colorbox之前调用它?如果是这样的话,那么是的,我有,但是当colorbox初始化时它还没有完成执行,我可能应该更清楚。单击按钮时打开颜色框,然后代码将获取当前lat long,获取静态地图图像,并将lat long转换为显示为标题的地址将地理代码函数调用绑定到click事件,并将颜色框打开到地理代码回调。如果你发布你的点击监听器,我可以详细说明。嗨,现在,我已经更新了我的代码,包括点击监听器