使所有列表项与最高的列表项相同

时间:2014-06-01 22:17:59

标签: javascript jquery html css

我正在创建一个小测验,每个问题都会输出4个列表项,每个问题的答案高度不同......

enter image description here

我想编写一个运行的脚本,并将所有div设置为与最大的div相同的高度...

我有以下情况,只有当我的答案有一个图像,它在图像加载完成之前计算hiehgt,然后设置高度以使其相当错误,任何人都能看到更好的方式来写这个吗?

function resizeAnswers(){
    var maxHeight = 23;

   $('.text-answers li').each(function() {
     maxHeight = maxHeight > $(this).height() ? maxHeight : $(this).height();
   });

   $('.text-answers li').each(function() {
     $(this).height(maxHeight);
   });
}

1 个答案:

答案 0 :(得分:1)

要等到所有图像都已加载,请在窗口加载后调用代码:

$(window).load(function() {
   resizeAnswers();
});

请注意,这将等待所有图片加载,这可能是一个问题,具体取决于您网站的性质。如果这是一个问题,您可以等待列表项中的图像加载,但这更复杂。

另外,你有这个:

$('.text-answers li').each(function() {
   $(this).height(maxHeight);
});

但这会做同样的事情:

$('.text-answers li').height(maxHeight);

jQuery很乐意将大多数操作应用于一组元素。