如何获取内部动态加载图像的元素的高度
How to get height of element with dynamically loaded images inside
nbsp nbsp 我有很多表,在最后一个tr的最后一个td中,我放了来自后端的消息。不仅可以有文本,还可以有图像(标签中的url),所以它们是动态加载的。我需要得到这张桌子的高度,如果超过400,我会添加一些污染物。
nbsp nbsp;首先,我做了这个:
$("table[name]='forum'").each(function() {
var height = $(this).height();
if (height > 400) {
var redirect = $("#backUrl").val() + "#" + $(this).find("[name]='answ'").attr("id");
$(this).find("tr:last-child > td:last-child").append(function() {
return "<div></div><a style='float: right' href='"+ redirect + "'><img src='/images/arrow_up.png'></a>";
});
};
});
nbsp nbsp;但它不适用于带有图像的表。然后我在谷歌上搜索了img,我应该使用load()并添加:
$(this+"> img").load(function() {
height += $(this).height();
});
但我理解,这是错误的,因为img可以在这个块完成后加载。我做了一些其他的动作,但不会影响到我想要的效果。
nbsp nbsp<这个问题的解决办法是什么?因为它在没有img标记的情况下计算整个元素的高度>
要获得最终的表格高度(如果img会影响高度,或者您可以预先设置一些最大高度),您必须等待加载所有图像。
var table = $(this), imgs = table.find("img"), len = imgs.length;
imgs.one('load', function() {
len--;
//now all image loaded
if (len == 0) {
//here you got the final height
height = table .height();
//do stuffs here
}
}).each(function() {
if (this.complete)
$(this).load();
});
$(this).find("img").load(function() {
height += $(this).height();
});
相关文章:
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 在检索数据时是否可以停止图像加载请求
- 如何让我的网站上的WEBP图像加载在morzilla firefox中有一个可能的解决方案吗?如果是,那么如何
- jQuery:获取图像加载错误的详细信息
- 在safari和chrome中,js图像加载产生了奇怪的结果
- 图像加载不适用于 IE 8 或更低版本
- 这个图像加载功能有什么作用
- JavaScript 图像加载器不起作用
- 动态图像加载是否会减少服务器过载
- 跨来源图像加载被拒绝-仅限iPhone-简单图像上传
- 纯javascript的进度图像加载程序仅当用户单击提交html表单时
- 使用JavaScript延迟图像加载
- 如果当前图像加载缓慢,如何加载其他图像
- HTML图像加载触发一个错误
- 将图像加载到localStorage,并将图像src设置到该位置
- jquery图像加载检查错误
- 将图像加载到织物画布背景中
- 需要在bootstrap css中单击时将图像加载为模态
- 正在显示加载..在将新图像加载到网站时播放动画
- 砖石事件:在图像加载和布局完成后调用事件