簡體   English   中英

將參數傳遞給循環中的jquery .load回調函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM