局部函数变量不会影响全局范围内的变量。为什么不?

时间:2015-04-20 00:30:39

标签: javascript jquery variables

我在js / jquery中创建一个简单的天气应用程序。 simpleweather函数的一个组成部分是它应该全局影响 var 华氏度,但是当我稍后在if / else语句中调用它时,它会将 var fahrenheit日志记录为我做错了什么?

var fahrenheit = 0;
var celsius = 0;

$(document).ready(function() {

  $.simpleWeather({

    location: 'newyork, NY',
    woeid: '',
    unit: 'f',
    success: function(weather) {
    //renames weather.temp as fahrenheit
     fahrenheit = weather.temp;
    console.log(fahrenheit);
     //puts that value into .fahrenheit div
      $(".fahrenheit").html(fahrenheit);
      //converts to celsius then puts in .celsius div
       celsius = fahrenheit - 32;
    var celsius = celsius * 5;
    var celsius = celsius / 9;
    var celsius = parseInt(celsius);
    $(".celsius").html(celsius);
    },
  });
});

if (fahrenheit > 55) {
    $(".scarf").html('<img src="img/scarf.svg"></img>');

} else {

    $(".scarf").html("");
};

1 个答案:

答案 0 :(得分:1)

您应该将以下代码放在success回调中。 (Ajax工作异步。)

if (fahrenheit > 55) {
    $(".scarf").html('<img src="img/scarf.svg"></img>');
} else {
    $(".scarf").html("");
};