这里我给的代码是通过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的变量中时预加载图像。感谢
答案 0 :(得分:3)
你正在构建一个字符串而不是一个数组(我不知道为什么)。您的$.each()
期望可以迭代的内容。
尝试创建一个数组,它将起作用:
var _images = [data.d[0].LabelImagePath];
此外,在$.each()
内,请勿使用data.d[0].LabelImagePath
,因为当您尝试预加载多张图片时,它会破坏您的代码。