我正在尝试制作一个'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
感谢任何帮助。谢谢。
答案 0 :(得分:1)
您的提醒范围错误。
hey
如果您要运行此代码,则可能首先弹出yourLabel.adjustsFontSizeToFitWidth = true
警报,然后弹出带坐标的警报。
答案 1 :(得分:1)
这是因为对getCurrentPosition()的调用是异步的,它将结果传递给作为自己的参数给出的函数中的position参数。外部的警报()在内部的警报()之前执行,即在填充值之前,外部警报以空值执行。
尝试使用.then(alert())进行外部警报的承诺功能。