【发布时间】:2012-02-09 11:31:35
【问题描述】:
我在 jquery 中有这段代码:
var ratio;
$("<img/>").attr("src", $(img).attr("src")).load(function() {
ratio = this.width / this.height;
alert(ratio);
});
这会重新调整正确的比例,但是当我尝试这个时
var ratio;
$("<img/>").attr("src", $(img).attr("src")).load(function() {
ratio = this.width / this.height;
});
alert(ratio);
它返回未定义。
我不明白为什么会发生这种情况,即使我已经全局声明了 ratio 变量。
我在下面的例子中使用它:
工作 http://jsfiddle.net/7sUAY/5/
不工作 http://jsfiddle.net/7sUAY/6/
谢谢你, 穆古尔
【问题讨论】:
-
因为
load回调仅在图像加载时执行,而$("<img/>").attr().load()之后的每个代码都会立即执行。否则,提供回调的原因是什么?