0
lon
およびlat
の値は、ブラウザのジオロケーションサービスを呼び出すと更新されるはずです。 Console.logステートメントでは、if/elseブロックでジオロケーションが正常に機能していることがわかりますが、coords.lon
とcoords.lat
は更新されません。これはスコープの問題でしょうか?思考?問題の更新オブジェクトのプロパティ
$(document).ready(function() {
// object to hold user coordinates
var coords = {
lat: 0,
lon: 0
};
// retrieve and set user's latitude and longitude coordinates
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
coords.lon = position.coords.longitude;
coords.lat = position.coords.latitude;
});
} else {
alert("Sorry, I couldn't locate you. Here's the weather in Paris, France.");
coords.lon = 48.8566;
coords.lat = 2.3522;
}
// enumerate AJAX request settings & pass in coordinate settings
var ajaxOptions = {
crossDomain:true,
dataType:"json",
url:"https://fcc-weather-api.glitch.me/api/current?",
data: {
lon:coords.lon,
lat:coords.lat
},
method:"GET",
success: function (json) {
$("#description").html(JSON.stringify(json));
alert(coords.lat);
},
error: function() {
alert("Ajax request failed");
}
};
// make AJAX request by passing in options specified in object above
$.ajax(ajaxOptions);