在函数内设置全局范围变量

Setting a global scope variable inside a function

本文关键字:范围 变量 全局 设置 函数      更新时间:2023-09-26

我正在尝试根据元素的高度设置动画触发器。该项目是用AngularJS构建的,但是我遇到的问题似乎真的很奇怪。我正在尝试在图像加载时设置一个 imgH 变量。在我的 onload 函数中,日志返回正确的图像高度并设置全局变量 imgH。在我的加载函数之后,控制台日志命令返回 imgH = 未定义

var imgH;
        $('.step-image').on('load',function(){
            imgH = $(this).height();
            console.log(imgH);
        });
console.log(imgH);
变量

正在设置中,只是当您在最后执行该console.log尚未设置。

下面是代码的运行顺序:

  1. var imgH; - 创建初始值为 undefined 的全局。
  2. $('.step-image').on('load', function ...) - 设置处理程序,(尚未)调用函数。
  3. console.log(imgH);(底部)- 显示undefined,因为尚未imgH分配任何值。
  4. 稍后,当图像加载时,将调用处理程序函数并设置imgH
  5. console.log(imgH);(在处理程序函数内) - 显示值。