在执行之前,请检查是否已加载子元素(图像)
Check if children elements (images) are loaded before executing?
我有一个div,它包含许多图像。在执行一些代码之前,我想检查一下这个div中的所有图像是否都已加载。我无法处理整个文档,因为页面上还有其他东西可能需要更长的时间才能加载。
我该怎么做?jquery可供使用。
您应该起诉加载事件
$('img').load(function(){
//here do what you need to do when the img is loaded
});
有一些注意事项
与图像一起使用时加载事件的注意事项
开发人员试图使用.load()解决的一个常见挑战快捷方式是当图像(或图像)已经完全加载。有几个已知的注意事项这一点值得注意。这些是:
- 它在跨浏览器中工作不一致,也不可靠
- 如果将图像src设置为与以前相同的src,则不会在WebKit中正确启动
- 它没有正确地弹出DOM树
- 对于已经存在于浏览器缓存中的图像,可以停止激发
你可以这样做:
var files = ['a.jpg','b.png']; //defines all assets needed
$.each(files,function(){
var tmp = new Image();
tmp.src = this; //creates a new dummy object
tmp.on('load',function(){
var i = files.indexOf(this);
files.splice(i,1); //when dummy object has loaded it gets removed from array
if (!files.length){ //when array is empty we're all set
alert('Preloading done!');
}
});
});
相关文章:
- 一个变化:在加载图像之前加载元素
- 移除/阻止将来在DOM中加载元素
- 在没有事件的情况下对具有特定类的已加载元素激发函数
- JQuery - 加载元素时的过程元素
- 从特定 Div JS 加载元素
- 使用javascript加载元素,然后应用它们javascript
- 聚合物 1.x:预加载元素属性
- 聚合物 1.x:预加载元素属性
- Django - 通过 AJAX 重新加载元素
- 在 jquery 插件中放置一个 Raphael “加载”元素
- 将事件绑定到页面上的动态加载元素
- jQuery-使用ajax加载元素
- 使用javascript动态加载元素的性能
- 如何在我们知道 ajax 加载元素的真实高度(带有图像)后立即执行脚本
- CSS在动态和直接通过服务器加载元素时出现负边距差异
- Jquery从外部脚本加载元素
- 在ajax中加载元素
- 在聚合物中加载数据后重新加载元素
- 如何使用js加载元素
- 一个接一个地加载元素——简单的jQuery