2014-03-27 387 views
1

我想加載一組圖像,並將不同的樣式應用於每一個作爲加載。當我運行我的代碼時,我只獲取傳入的最後一組樣式適用於所有圖像。將參數傳遞給循環中的jquery .load回調函數

對於一組圖像ids $ foo將該圖像加載到它自己的盒子中,然後應用一個高度。

for (var i = 0; i < $foo.length; i = i + 1) { 
    $bar = i; 
    $('.box'+[i]).load('/getimage/'+$foo[i]', function(){style($(this), $bar);} 
} 

function style(img, $bar){ 
img.css('height', $bar); 
} 

我用樣式函數格式化的每個圖像只設置爲最後一個值爲$ bar的高度。

我想將高度設置爲加載圖像時$ bar的值。

回答

1

你可以使用一個閉合來獲得在每次迭代

for (var i = 0; i < $foo.length; i = i + 1) { 
    $bar = i; 

    // closure to get correct value for i 
    (function(index) { 
     $('.box'+[index]).load('/getimage/'+$foo[index], function() { 
      style($(this), index); 
     }); 
    })(i); 
} 

function style(img, $bar){ 
    img.css('height', $bar); 
} 
+0

真棒得益於正確的值,與其說這是正是我需要的。 –