我已经获得了这部分代码,其中变量纬度和经度声明在范围之外,然后在positionSuccess函数内定义。我想稍后重新使用这些变量,但它们会以未定义的方式返回。不知道为什么。全局变量在函数范围内是未定义的
我想如果它们被定义在函数之外,那么它们应该在同一范围内可用于其他函数。我在这里错过了什么吗?
$(document).ready(function(){
navigator.geolocation.getCurrentPosition(positionSuccess, positionError);
// Gets the user's location
var latitude;
var longitude;
function positionSuccess(position){
latitude = position.coords.latitude;
longitude = position.coords.longitude;
}
function positionError(error){
console.warn('ERROR: ' + error.code + ': ' + error.message);
}
// Other functions that need access to latitude and longitude variables.
)};
感谢您的帮助!
该代码似乎是正确的 - 验证positonSuccess事先被调用。 –
@ConnorPeet - 'positionSuccess'是异步的,因此在'$(document).ready()'回调函数完成执行后调用。这就是导致问题的原因 - 请参阅下面的答案。 – jfriend00