这里我给出了通过 jquery 预加载图像的代码。
var _images = ['/images/ajax-loader.gif'];
$.each(_images, function (e) {
$(new Image()).load(function () {
//alert($(this).attr('src') + 'has loaded!');
}).attr('src', this);
});
上面的代码工作正常,因为我们在这里对图像路径进行了硬编码,但是当图像路径存储在变量中时,它就不起作用了。
这里我给出了出错的代码。
var _images = '[' + data.d[0].LabelImagePath + ']';
$.each(_images, function (e) {
$(new Image()).load(function () {
$('#imgHolder').html("<img src='" + data.d[0].LabelImagePath + "' border=0/>");
$("#btnPrint").show();
}).attr('src', this);
});
此行返回图像路径,如/images/1Z520777777779.gif。
所以请指导我如何通过上面的代码使用 jquery 将图像路径存储在变量中时预加载图像。谢谢
最佳答案
您正在构建一个字符串而不是一个数组(我不知道为什么)。您的 $.each()
需要可以迭代的内容。
尝试创建一个数组,它会起作用:
var _images = [data.d[0].LabelImagePath];
此外,在 $.each()
中,不要使用 data.d[0].LabelImagePath
,因为它会在您使用时破坏您的代码尝试预加载多个图像。
关于javascript - jquery的图像预加载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581921/