[英]Passing parameters to jquery .load callback function in a loop
我正在嘗試加載一組圖像並將不同的樣式應用於每個圖像作為加載。當我運行我的代碼時,我只獲得傳入的最后一組樣式以應用於所有圖像。
對於一組圖像ID,$ 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的值。
您可以使用閉包來獲取每次迭代的正確值
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.