2011-09-28 121 views
1

这里我给代码预加载图像的jquery。因为在这里我们硬编码的图像路径,但是当图像路径存储在变量,然后它不工作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的上述代码。谢谢

回答

3

你正在建立一个字符串,而不是一个数组(我不知道为什么)。你的$.each()期望可以迭代的东西。

尝试创建一个数组,那么它会工作:

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

此外,$.each()内,不使用data.d[0].LabelImagePath,因为它会破坏你的代码,当你试图预加载更多比一张图片。