下面的代码部分使用Geolocation.getCurrentPosition()方法确定Web用户的地理位置,将其保存到全局初始化变量,然后将其写入显示。然后,在脚本中稍后将使用全局变量进行另一次计算,但是,当尝试此操作时,将无法识别变量的新值,并且结果未定义。
$(document).ready(function() {
var lat;
var long;
navigator.geolocation.getCurrentPosition(success);
function success(position) {
lat = position.coords.latitude;
long = position.coords.longitude;
$('#geoLocInFunc').text(lat + ',' + long);
};
$('#geoLocOutFunc').text(lat + ',' + long);
})
我确定有不同的方法来获得相同的结果但是,我需要知道我是否误解了与函数,方法或全局变量相关的内容。
答案 0 :(得分:0)
只有在浏览器确定了地理位置后才会调用您的成功函数。它不会立即被调用。因此成功函数定义后的这个语句:
$('#geoLocOutFunc').text(lat + ',' + long);
在成功执行之前调用。
了解正在发生的事情的最佳方法是在适当的地方添加警报声明。