对不起,如果这是显而易见的,但我只是在编码任何东西时修补和破解。我正在尝试构建一个天气显示页面,并按照我想要的方式获取所有内容,但当天的高低似乎停留在页面创建当天的数据中,并且自那以后的两天内没有更新。为了让这些数据最新,我有什么遗漏的东西吗?
这是js代码:
if("geolocation" in navigator) {
navigator.geolocation.getCurrentPosition(function(position) {
loadWeather(position.coords.latitude + ',' + position.coords.longitude);
});
} else {
loadweather("Danville, KY", "");
}
$(document).ready(function() {
setInterval(getWeather, 60000);
});
function loadWeather(location, woeid) {
$.simpleWeather({
location: location,
woeid: 2389342,
unit: 'f',
success: function(weather) {
city = weather.city;
temp = weather.temp+'°';
wcode = '<img class="weathericon" src="images/weathericons/' + weather.code + '.svg">';
high = '<p>Today\'s High: '+weather.high+'°'+weather.units.temp+'</p>' ;
low = '<p>Today\'s Low: '+weather.low+'° '+weather.units.temp+'</p>';
$(".location").text(city);
$(".temperature").html(temp);
$(".climate_bg").html(wcode);
$(".high").html(high);
$(".low").html(low);
},
error: function(error) {
$(".error").html('<p>' + error + '<p>');
}
});
}
答案 0 :(得分:1)
对于我而言,您似乎已经忘了创建getWeather
功能了。我认为你的前几行代码都是在其中,所以在ready
调用之前替换所有内容应该可以解决它:
function getWeather() {
if("geolocation" in navigator) {
navigator.geolocation.getCurrentPosition(function(position) {
loadWeather(position.coords.latitude + ',' + position.coords.longitude);
});
} else {
loadweather("Danville, KY", "");
}
}
也就是说,您所呈现的代码正在成为The Horror of Implicit Globals 的牺牲品(我的贫血小博客上的帖子):您想要声明变量({{1 }},city
等)您正在使用temp
在ajax回调中使用。