我調用一個函數裏面一個for循環,但功能似乎並不在我的HTML到正常工作函數內的循環(JS/jQuery的)
$(document).ready(function(){
function fn_get_natural_dim(){
var width = this.width;
var height = this.height;
var ratiow = width/600;
var ratioh = height/300;
if(ratiow>=ratioh)
{
height = height/ratiow;
$(slide_image).css("width","600px");
$(slide_image).css("height",height);
var margin = (300-height)/2;
$(slide_image).css("margin-top",margin);
}
else
{
width = width/ratioh;
$(slide_image).css("width",width);
$(slide_image).css("height","300px");
var margin = (600-width)/2;
$(slide_image).css("margin-left",margin);
}
}
var max_count = $(".slider").children().length;
for(var count=1;count<=max_count;count++)
{
var count_string = count.toString();
var img_name = "img" + count_string;
var slide_image = document.getElementById(img_name);
var img = new Image();
img.onload = fn_get_natural_dim();
img.src = $(slide_image).attr("src");
}
});
,我有幾個圖片與編號IMG1 ,#img2等。 對於它們中的每一個,我都通過調用一個新的Image()來獲得它的自然尺寸,然後調整它的大小以適應600x300的div。 以上是功能fn_get_natural_dim()
當我打電話內部的for循環這一功能,它不工作的內部。具體而言,寬度和高度變量變爲零。起初我認爲函數中的「this」不再指向img變量,所以我將「this」切換爲「img」,但它仍然不起作用。
img.onload = fn_get_natural_dim();將使用這個函數的返回結果,這似乎是'未定義'。請參閱@ Alnitak的回答 –