我已經獲得了這部分代碼,其中變量緯度和經度聲明在範圍之外,然後在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