全局变量在Geolocation方法中无法识别 - JavaScript

时间:2015-12-08 16:51:49

标签: javascript jquery geolocation global-variables

下面的代码部分使用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);

})

我确定有不同的方法来获得相同的结果但是,我需要知道我是否误解了与函数,方法或全局变量相关的内容。

1 个答案:

答案 0 :(得分:0)

只有在浏览器确定了地理位置后才会调用您的成功函数。它不会立即被调用。因此成功函数定义后的这个语句:

$('#geoLocOutFunc').text(lat + ',' + long);
在成功执行之前调用

了解正在发生的事情的最佳方法是在适当的地方添加警报声明。