2016-03-27 3 views
0

У меня есть следующий код:Javascript переменного вопрос сферы между функциями

var currentTemp = 0; 
    $.simpleWeather({ 
    location: 'New York, New York', 
    woeid: '', 
    unit: 'f', 
    success: function(weather) { 
     currentTemp = weather.temp; 
    }, 
    error: function(error) { 
     currentTemp = 150; 
    } 
    }); 
    $('#degrees').text(currentTemp); 

По какой-то причине значения переменной currentTemp «s, когда установлено внутри функций simpleWeather, не несет за пределами эта функция. Что я могу сделать?

+2

положить '$ ('#' градусов) текст (currentTemp).' Внутри функции успеха –

+0

'simpleWeather' async ... ваш вызов '$ ('# degrees'). text (currentTemp);' running * before * запускается метод 'success'. –

+0

Это проблема времени, а не проблема с областью. –

ответ

1

$('#degrees').text(currentTemp) не дожидается $ .simplerWeather для запуска success обработчик. Вы должны переместить любой код, который нужно выполнить после$.simplerWeather к success обработчика (обратный вызов)

var currentTemp = 0; 
    $.simpleWeather({ 
    location: 'New York, New York', 
    woeid: '', 
    unit: 'f', 
    success: function(weather) { 
     currentTemp = weather.temp; 
     $('#degrees').text(currentTemp); 
    }, 
    error: function(error) { 
     currentTemp = 150; 
    } 
    }); 
Смежные вопросы