在函数内设置全局范围变量
Setting a global scope variable inside a function
我正在尝试根据元素的高度设置动画触发器。该项目是用AngularJS构建的,但是我遇到的问题似乎真的很奇怪。我正在尝试在图像加载时设置一个 imgH 变量。在我的 onload 函数中,日志返回正确的图像高度并设置全局变量 imgH。在我的加载函数之后,控制台日志命令返回 imgH = 未定义
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);
(在处理程序函数内) - 显示值。
相关文章:
- ngDialog-弹出窗口未更新范围变量
- AngularJS范围变量Unwatch
- 将外部控制器的范围变量设置为角度
- 对于使用传递的数据计算的局部范围变量,角度绑定在自定义指令中不起作用
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- 具有范围变量的控制器不工作
- 范围变量返回长度错误
- 将 NodeJS 模块范围变量作为对象访问
- Angularjs 更新 setTimeout 中的范围变量不起作用
- 递归承诺调用 - 内存范围变量问题
- AngularJS:从指令设置范围变量
- Angularjs:访问范围变量数组并计算平均值
- 范围变量更新,但不更新视图
- 从html调用angularjs控制器中的一个函数,但未定义范围变量
- 如何在编辑范围变量时(暂时)避免摘要循环
- 防止Angular范围变量通过引用自动绑定到服务私有成员
- 使用 AngularJS 从指令设置范围变量
- 集合回调忽略范围变量
- 使用forEach修改角度范围变量
- 因果报应测试中未定义的预期范围变量