【发布时间】:2015-06-07 23:00:06
【问题描述】:
我有这段代码,其中变量纬度和经度在 positionSuccess 函数之外声明,然后在 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()回调函数完成执行后调用。这就是导致问题的原因 - 请参阅下面的答案。
标签: javascript