我正在尝试根据元素的高度设置动画触发器。该项目是使用AngularJS构建的,但我遇到的问题似乎真的很奇怪。我正在尝试在图像加载时设置imgH变量。在我的onload函数中,日志返回正确的图像高度并设置全局变量imgH。在我的onload函数之后,控制台日志命令返回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);
(在处理程序函数内部)-显示值。