我有jQuery的問題。函數中的jQuery變量範圍
我想獲得img
的真實寬度/高度。現在
我用這個函數來得到它:
var imageSize = function(image) {
var realImageSize = { };
$("<img/>") // Make in memory copy of image to avoid css issues
.attr("src", $(image).attr("src"))
.load(function() {
realImageSize.width = this.width; // Note: $(this).width() will not
realImageSize.height = this.height; // work for in memory images.
alert(realImageSize['height']); // Valid height
});
alert(realImageSize['height']); // Undefined
return realImageSize;
}
所以我在存儲器複製的圖像,然後我獲取和設置圖像的.load
方法的實際尺寸。
現在,問題在於var realImageSize
變量由於某種原因在此範圍內不可用。誰能告訴我爲什麼?
'load()'是異步的,因此在調用回調之前已經退出。你試圖做的是不可能的。你需要在回調中處理所有依賴於load()的邏輯。 –
這是類似的(也許是重複的,也許不是)這個問題:http://stackoverflow.com/questions/12475269/variable-doesnt-get-returned-from-ajax-function –