在函数内设置全局范围变量
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
设置。
这是您的代码运行的顺序:
var imgH;
- 创建初始值为 undefined
的全局变量。
$('.step-image').on('load', function ...)
- 设置处理程序,(还)不调用函数。
console.log(imgH);
(在底部)- 显示 undefined
,因为尚未为 imgH
赋值。
- 稍后,当图像加载时,处理函数被调用并设置
imgH
.
console.log(imgH);
(在处理程序函数内)- 显示值。
我正在尝试根据元素的高度设置动画触发器。该项目是用 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
设置。
这是您的代码运行的顺序:
var imgH;
- 创建初始值为undefined
的全局变量。$('.step-image').on('load', function ...)
- 设置处理程序,(还)不调用函数。console.log(imgH);
(在底部)- 显示undefined
,因为尚未为imgH
赋值。- 稍后,当图像加载时,处理函数被调用并设置
imgH
. console.log(imgH);
(在处理程序函数内)- 显示值。