2015-12-18 2 views
0

Прошу прощения, если это очевидно, но я просто возиться и взламывать, когда дело доходит до кодирования чего-либо. Я пытаюсь создать страницу отображения погоды и получил все, как я ее хочу, но высокий и низкий за день, похоже, застрял в данных за день, когда страница была создана и не обновилась за два дня с тех пор , Есть ли что-то, что мне не хватает, чтобы получить эти данные?Неверные/устаревшие высокие/низкие темпы в simpleweather.js

Вот код 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+'&deg;'+weather.units.temp+'</p>' ; 
     low = '<p>Today\'s Low: '+weather.low+'&deg; '+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>'); 
    } 
}); 
} 
+1

Что такое 'getWeather'? –

ответ

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(это сообщение в моем анемичном маленьком блоге): Вы хотите объявить переменные (city, temp и т. Д.), Которые вы используете в обратном вызове ajax с помощью var.

+0

Спасибо за ваш ответ. Я попробовал ваши предложенные изменения, и это привело к тому, что все данные исчезли на моей странице. Я забыл упомянуть, что текущие временные и локальные данные выводятся корректно, я просто устареваю с высокой/низкой информацией (со дня написания и публикации кода). Я открыт для большего количества предложений, но в то же время я попытаюсь очистить свой беспорядок переменными и снова попробую приведенный выше код, чтобы увидеть, есть ли другой результат. – user5695794