$(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表示图片数量
答案 0 :(得分:1)
$("#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);
}
});