jQuery - 我能检测到所有内容加载完毕吗?

4
我有一个页面,其中有很多广告逐步加载。
我需要相对于整个页面高度定位一个元素,由于广告的添加而导致页面高度在加载期间发生变化。
问题:是否有jquery事件或类似事件可以检测所有元素何时加载完成?目前我正在使用setTimeout进行“等待”,但这远非完美。
如果在xyz秒内没有新的http请求,则触发一次“空闲”事件会很好。
4个回答

7

当$(window)完成加载DOM时,该函数被执行。http://api.jquery.com/load/ - lowerkey
我的错,@frequent:对于错误的信息感到抱歉。 - lowerkey
好的,问题已经解答了,但还是有些棘手。我正在使用Jquery Mobile多页面,其中包含几个内部页面,您可以在其之间进行转换。_ onload_ 在多页面的初始页面上正确触发 - 因为一切都已加载 - 包括所有其他页面。因此,当我转到第二页,第三页时,我就没有事件可触发了。我猜这又是另一个问题了。 - frequent

0

没有空闲函数,但是有

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

0
$( window ).load(function() {
  //loading bar here /gif imagel
  loader(); 
  //will call at the end of window load
});

function Loader(){
  //Your main function here complete webpage
};

0
理想情况下,答案应该是$(function(){ })window.onload = function(){},它们会在所有DOM内容加载完成后触发。但我猜测,您页面上的广告在DOM加载后异步加载。
因此,假设您知道页面上'广告'的数量(您说您正在逐个加载它们),我的建议是在每次成功加载'广告'时增加一个计数器。当该计数器达到广告总数时,触发'all_adv_loaded'函数。

这也是一个不错的方法,但由于这是一个插件,我将不得不在不知道广告确切数量的情况下进行。 - frequent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接