1

在这里,我给出了通过 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的变量中时如何预加载图像。谢谢

4

1 回答 1

3

You are building up a string instead of an array (I dunno why). Your $.each() expects something that can be iterated.

Try creating an array instead, it will work:

var _images = [data.d[0].LabelImagePath];

Also, inside the $.each(), don't use data.d[0].LabelImagePath, because it will break your code when you're trying to preload more than one image.

于 2011-09-28T10:44:43.047 回答