對不起,如果這是一個愚蠢的問題。我使用.each來循環訪問一系列圖像,並對每個圖像執行一次內存加載,以查找它的真實寬度和高度。然後使用這些數字來填充數組。問題是我想等到循環完成後繼續我的任務。這裏是我的代碼:等待jquery .each()循環完成
$.each(items, function(){
$('<img/>').attr('src', $(this).attr('src')).load(function(){
myArray.push(this.width);
myArray.push(this.height);
});
});
console.log(myArray.length);
控制檯始終記錄0,因爲我懷疑console.log正在執行.each循環完成之前。這是正確的嗎?我如何繞過它?十分感謝。
'$ .each'不是異步的,'.load'是。 – 2012-03-21 15:15:46
由於圖像是異步加載的,你希望如何處理這個圖像?每次圖像完成加載時,您都可以通過在「push」後面暫停調用來記錄數組長度。或者Rody建議您可以改用同步呼叫。你需要什麼樣的行爲以及什麼原因?顯然,你正在尋找的不僅僅是你的問題狀態。 – mrtsherman 2012-03-21 15:36:05
最後的遊戲是我需要加載一些圖片,這些圖片的數量和大小可能會有所不同,請比較所有寬度和高度以找到兩者的上限。我還需要將寬度和高度都存儲在數組中,以供代碼進一步使用。 – 2012-03-21 15:49:03