2011-09-28 165 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,因爲它會破壞你的代碼,當你試圖預加載更多比一張圖片。