我正在使用jQuery的加载函数在文档准备就绪时呈现我的一些内容。
$(document).ready(function(){
$('#header').load('header.html',function() {
//do call back function});
$('#footer').load('footer.html');
});
我不希望我的回调函数在请求完成时执行,而是在加载的内容(或dom?)准备好被操作时。我怎么能这样做?
由于
答案 0 :(得分:2)
我很确定你在加载Window之后想要做什么,而不是DOM。
如果你有一些代码依赖于读取图像,(文档)之类的东西的高度和宽度。已经无法工作,因为它是在图像加载之前运行的。我在尝试在页面上呈现RSS源之前遇到过这个问题。
这是在加载窗口后执行某些操作的代码:
jQuery(window).load(function() {
//Do something after the window is loaded!
});
答案 1 :(得分:1)
根据我的理解,这里的问题是一旦收到数据就会调用回调,而不是在浏览器完成呈现时调用。如果您的回调依赖样式属性作为一个示例,则会出现问题。
我的解决方案是在加载之前隐藏父节点,然后在再次显示之前稍加延迟,并在show方法上放置一个回调。
$('#header').hide().load('header.html').delay(1).show(0, function(){
//callback statements
});
所以这样可行,但不是防弹的,因为我们不确切知道内容需要多长时间才能呈现。