javascript - jquery的图像预加载问题

标签 javascript jquery arrays image-preloader

这里我给出了通过 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/

相关文章:

ruby-on-rails - Rails 4 - 验证数组中的元素

javascript - 指令内的 AngularJS $watch 未触发

javascript - 我正在尝试使用 Javascript 读取示例 json 动态插入一段 html 代码,但无法这样做

javascript - 单击图像并重定向到新页面,并将单击的图像动态添加到新页面?

jquery Zebra 列表奇偶数据过滤后显示。

javascript - 将数组元素添加到另一个数组

javascript - 如何将 Json 数据传递到 JavaScript 数组中?

javascript - JavaScript 中的表

javascript - Prop 类型 : The prop `value` is marked as required in `Rating` , 失败,但其值为 `undefined`

jquery - 删除最后一个 append 元素jquery