2014-01-21 48 views
1

我想加載數組中的所有圖像並返回到此字段,而不是Object Image()的鏈接參數.src。我的數組的如何在Javascript中加載數組中的所有圖像?

例子:

var slides = { 
    "123456": { 
     "type": "type", 
     "material": [ "material" ], 
     "size": [ "size"], 
     "price": "price", 
     "color": { 
      "#000000":"jpg.jpg", 
      "#C1876B":"jp.jpg", 
      "#ffffff":"j.jpg", 
      "#B5B8B1":"jp.jpg", 
      "#4D220E":"jpg.jpg" 
     } 
    }, 
    "123457": { 
     "type": "type", 
     "material": [ "material" ], 
     "size": [ "size"], 
     "price": "price", 
     "color": { 
      "#000000":"jpg.jpg", 
      "#C1876B":"jp.jpg", 
      "#ffffff":"j.jpg", 
      "#B5B8B1":"jp.jpg", 
      "#4D220E":"jpg.jpg" 
     } 
    }, 

如果它如此簡單 - 對不起我,但我不能做我自己。

更多詳細信息: 我有一個頁面類型的購物頁面上的數組。 我只加載第一張圖片,不要碰其他圖片。 只有在用戶點擊其他顏色後纔會加載。 但我不想花時間和頁面加載後加載所有圖像到數組中。 這可能嗎?

+0

它不太清楚你想要做什麼 – thefourtheye

+0

@thefourtheye,你可以看到[鏈接]上的例子(http://stackoverflow.com/questions/7438287/jquery-how-to-check-when-all -images-in-an-an-an-loaded),但它創建第二個數組。我想在已經存在的數組中加載圖像,並返回帶有圖像的字段,而不是鏈接 - 對象。你清楚嗎? – serge

+0

你可以舉一個大概的例子:預期結果的HTML是什麼樣的? –

回答

1

沒錯。

查找並試圖改變自己的JS的這個部分:

var background = arrayKeys(slides[k]["color"],"array"); 
for(var i=0;i<background.length;i++){ 
    html += "<li style=\"background: " + background[i] + ";\"></li>"; 
} 

到:

var _color = slides[k]["color"]; 
for(var _k in _color){ 
    var _image = new Image(); 
    _image.src = _color[k] 
    var _cacheImage.push(_image); 
    html += "<li class='selectColor' data-url='"+_color[k]+"' style=\"background: " + _k + ";\"></li>"; 
} 

,並在此之後對cicle:

for (var k in slides){ 
    if (slides.hasOwnProperty(k)) { 
     //.. code 
    } 
} 

地址:

$(".selectColor").on("click",function(){ 
    $(this).parentAll(".slide").find("> img").attr("src","" + $(this).attr("data-url")); 
}); 

現在...每當你點擊一種顏色的圖像將會改變。

+0

thx很多..但它是真正的行>「var _cacheImage.push(_image);」? – serge

+0

ops ... nooo ...大聲笑...刪除var並插入var _cacheImage = [];之前for循環...對不起:/ – Frogmouth

+1

好的)謝謝!我學到了很多! – serge

相關問題