if($('body').hasClass('single') && ($overlayPanel) ) {
$overlayPanel.each(function(){
$(this).height($(this).prev().height());
})
}
似乎有50%的时间图像的高度在其签名之前未及时计算以创建overlayPanel的高度(仅产生高度0px)。有没有更强大的方法来写这个,所以overlayPanel将始终具有prev()的高度?
答案 0 :(得分:0)
你应该证明
$(document).ready()
)答案 1 :(得分:0)
如果每个元素与前一个元素具有相同的高度,它们都具有与第一个元素相同的高度,因此至少可以更容易地编写它。
对于图像,你必须等到图像加载才能获得高度,你可以使用window.onload,或者监听第一张图像的onload事件,然后设置高度。其他图像到同一高度
if( $('body').hasClass('single') && $overlayPanel.length ) {
var img = new Image();
img.onload = function() {
$overlayPanel.css('height', $(this).height())
}
img.src = $overlayPanel.first().prop('src');
if (img.complete) img.onload();
}