我知道.load()
函数在jQuery中,以及如何使用回调函数.但是,是否有一种方法可以检查是否使用if
语句加载了元素?
我的推理..。我想设置一个间隔,并检查一个元素及其所有的子元素是否已经完全加载。
var load-interval = setInterval(function(){
if($('#content').hasBeenLoaded){
//do stuff
}
}, 1000);
发布于 2014-08-12 12:53:04
var $content = $('#content');
var intervalId = setInterval(function(){
if(!$content.is(':empty')){
//do stuff
clearInterval(intervalId);
}
}, 1000);
只需注意,只包含等级库认为非空的文本节点的元素
发布于 2014-08-12 13:09:25
在初始页面加载期间,您的DOM元素是在解析文件时逐步创建的,但是图像资产通常是在引用时异步加载的。
因此,在加载页面时,解析器将遇到元素<div id="mycontent">
。
将立即创建该元素,然后创建它的子元素,最后将找到该div的结束标记。此时,您可以考虑DOM本身对该元素是“加载”的。
那么,最简单的执行方法就是在结束标记之后立即将其放入<script>
标记中。
如果您还想等待图像资产的加载,那么这里仍然是放置它的地方。您可以在以前加载的div中查找所有<img>
标记,并注册onload
回调。
<div id="mycontent">
lots of DOM, including image tags
</div>
<script>
(function() {
var div = document.getElementById('mycontent'); // guaranteed to exist
var imgs = div.getElementsByTagName('img');
// put image load detection code here - exercise for the reader
})();
</script>
https://stackoverflow.com/questions/25273764
复制相似问题