变量未填充所需的值

时间:2017-07-07 12:07:43

标签: javascript jquery

我正在尝试制作一个'cueent weather application'。 为此,在我的jQuery代码片段中,我使用名为“latitude”的两个变量& '经度'。 当我用我当前位置的纬度和范围填充它们时分别经度,它发生得非常有效,如我的警告弹出窗口('if'语句中的那个)所反映的那样。 但是,在“if”语句之外,变量不再保留其值,如第二个警告弹出窗口所示。

<script>
$(document).ready(function(){
  var latitude = "";
  var longitude = "";
  if(navigator.geolocation){
    navigator.geolocation.getCurrentPosition(function(position){
      //alert(position.coords.latitude + " " + position.coords.longitude);
      latitude = position.coords.latitude;
      longitude = position.coords.longitude;
    });
  }
  alert(latitude + " " + longitude);
});
</script>
body {
  background-color : black;
}

.jumbotron {
  background-color : black;
  color : white;
}
<html>
<body>
  <div class="container-fluid" id="main-div">
    <div class="jumbotron text-center" id="heading-div">
      <h1 id="heading">Current Weather</hi>
    </div>
    <div class="row" id="weather-row">
      <div class="col-md-offset-4 col-md-4 col-sm-offset-3 col-sm-6 col-xs-offset-2 col-xs-8" id="weather-column">
        <div class="row" id="location-row">
          <div class="col-md-12 col-sm-12 col-xs-12" id="location-column">
          </div>
        </div>
        <div class="row" id="region-row">
          <div class="col-md-12 col-sm-12 col-xs-12" id="region-column">
          </div>
        </div>
        <div class="row" id="icon-row">
          <div class="col-md-12 col-sm-12 col-xs-12" id="icon-column">
          </div>
        </div>
        <div class="row" id="summary-row">
          <div class="col-md-12 col-sm-12 col-xs-12" id="summary-column">
          </div>
        </div>
        <div class="row" id="temp-row">
          <div class="col-md-12 col-sm-12 col-xs-12" id="temp-column">
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
</html>

以下是我的代码..

https://codepen.io/iamrkcheers/pen/KqxyVZ

感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

您的提醒范围错误。

hey

如果您要运行此代码,则可能首先弹出yourLabel.adjustsFontSizeToFitWidth = true 警报,然后弹出带坐标的警报。

答案 1 :(得分:1)

这是因为对getCurrentPosition()的调用是异步的,它将结果传递给作为自己的参数给出的函数中的position参数。外部的警报()在内部的警报()之前执行,即在填充值之前,外部警报以空值执行。

尝试使用.then(alert())进行外部警报的承诺功能。