【发布时间】:2026-01-04 20:05:02
【问题描述】:
我正在尝试使用以下代码检查是否所有图像都加载到容器中
$(document).ready(function () {
$(".slide img").each(function (index) {
var fakeSrc = $(this).attr('src');
$("<img/>").attr("src", fakeSrc).css('display', 'none').load(function () {
alert('loaded');
}).
error(function () {
load_img_Single(fakeSrc);
});
});
function load_img_Single(img) {
alert(img);
var ruth;
$("<img/>").attr("src", img).css('display', 'none').load(function () {
ruth = 'yeap';
}).error(function () {
ruth = 'nope';
});
alert(ruth);
}
});
现在你可以看到我使用假容器加载图像并检查它是否已加载。
我在第一次检查图像时使用 .error 来查看它是否正确加载,如果没有,它会执行我的函数 load_img_Single(image) 再次加载它。
现在再次在该函数中检查它是否已加载。但问题是变量“ruth”没有被设置为该函数中的任何内容。它已在外部声明,但仍以“未定义”的形式出现。
任何见解都将不胜感激。
【问题讨论】:
-
加载图片是异步的,它不会阻塞浏览器,所以代码会继续执行,一旦加载图片就会调用回调,当你检查你的变量时,回调还没有执行.
标签: javascript jquery image