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

标签 javascript jquery variables

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

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("");
};

最佳答案

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

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

关于javascript - 局部函数变量更改不会影响全局范围内的变量。为什么不?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29737563/

相关文章:

javascript - 使用navigateByUrl()传递查询参数

javascript - JQuery (document).ready 在文档准备好之前仍然运行?

php - PHP 中的变量、常量和关联数组

javascript - 如何在动态加载的html页面中访问javascript变量?

ruby - Ruby 中的普通变量与实例变量,有什么区别?

javascript - 使用 jQuery Validate 的 invalidHandler 事件

javascript - 取消选择下拉项时从数组中删除元素

javascript - Ajax 调用的 REST URL 参数中存在 '/' 问题

ASP.NET 2.0 JQuery AJAX 登录

javascript - 如何防止长时间运行的服务导致浏览器弹出“终止/等待”警报?