使所有图像的最大高度

时间:2015-04-01 19:34:53

标签: javascript jquery

$(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表示图片数量

1 个答案:

答案 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);                   
    }

});
相关问题