【发布时间】:2012-10-18 03:57:43
【问题描述】:
我正在尝试获取图像的尺寸,以便稍后在我的脚本中使用。使用 jQuery 直接选择 img 元素可以正常工作并且更容易,但是它在 webkit 浏览器中不起作用(在函数调用时未加载图像)。我正在尝试实现此解决方案,其中使用 jquery load() 函数在图像加载后设置变量。
为什么我的变量没有按需要设置?
function startSlider() {
if (1 == 1) {
var bImg = $('#banner img');
var bWidth = 111, bHeight = 222;
$("<img/>")
.attr("src", $(bImg).attr("src"))
.load(function() {
bWidth = this.width;
bHeight = this.height;
console.log('inner: ' + this.height);
});
console.log('outer: ' + bHeight);
}
}
$(window).load(startSlider(skin));
输出
outer: 222
inner: 333
示例来源
<div id="banner">
<img src="/path/to/image.jpg" />
</div>
【问题讨论】:
-
我不相信你得到“外”行之后“内”行
-
谢谢,我把它们弄错了。
-
图片是由javascript创建的?或者只是通过 html 标签创建?
-
图片在文档中是原生的,不是由javascript创建的。
$('#banner img')引用加载文档中的 HTML 标记。我将添加示例源。 -
当 bImg 已经是一个 jQuery 对象时,你为什么还要
$(bImg)?在设置 src 之前设置负载。并了解异步和同步调用。
标签: javascript jquery scope