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

Setting a global scope variable inside a function

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

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);(在处理程序函数内)- 显示值。