$(document).ready(function() {
var enbuyuk = 0;
var height = 0;
$("#onecikanresim0").load(function() {
enbuyuk = $(this).height();
});
var sinir = <?php echo count($urunler); ?>;
for(var i=1; i<sinir; i++){
$("#onecikanresim"+i).load(function() {
height = $(this).height();
});
if(height > enbuyuk){
enbuyuk = height;
}
}
for(var i=0; i<sinir; i++){
$("#onecikanresim"+i).src("height", enbuyuk);
}
</script>
我希望所有图像都达到最大高度。但是此代码不起作用。我认为
load
可以回调。但是我不知道如何解决它。有人能帮我吗?enbuyuk意味着最大的身高
sinir表示图像数量
最佳答案
$("#onecikanresim"+i).src("height", enbuyuk);
这不是分配高度的正确方法,我认为.src()
甚至无效。
尝试:$("#onecikanresim"+i).css("height", enbuyuk);
这不是您唯一的问题。您在使用enbuyuk
之前,将为其分配除0
以外的任何内容。 $("#onecikanresim0").load()
之后的所有内容都将在回调之前运行。
很难说出您期望逻辑如何进行,但是下面的内容将使您更加接近。老实说,您可能要重构整个事情,因为您最终将陷入回调地狱。您不一定需要.load()
。您可以只检查高度,因为您的代码在jQuery $(document).ready()
中,并且可以合理地假定图像已加载。
var enbuyuk = 0;
var height = 0;
$("#onecikanresim0").load(function() {
enbuyuk = $(this).height();
var sinir = <?php echo count($urunler); ?>;
for(var i=1; i<sinir; i++){
$("#onecikanresim"+i).load(function() {
height = $(this).height();
if(height > enbuyuk){
enbuyuk = height;
}
});
}
for(var i=0; i<sinir; i++){
$("#onecikanresim"+i).src("height", enbuyuk);
}
});