【发布时间】:2012-03-17 14:08:28
【问题描述】:
我使用 Jquery Ajax 加载内容并使用 .html() 方法将其插入到 div 中。之后我需要获取加载内容的高度来计算进一步的大小,但似乎内容最终没有加载。当我尝试获得它的高度时,它有时可以正常工作,但有时我会得到一个很小的高度值。
Ajax 加载函数:
function loadPage(url,data){
jQuery.ajax({
'url': url,
'dataType': 'json',
'data': data,
success: function(data,s,xhdr){ // data, status
if(!data){ return false };
pagenav(data);
}
});
return false;}
function pagenav(data){
if(!data){ return false };
if(typeof(data.content)=="object"){
for(var i in data.content){
if(data.content[i].target_id == 'panelMain'){
jQuery('#panelMain').html(data.content[0].content);
setTimeout(function(){
onLoad();
},0);
}else{
jQuery('#panelFooter').html(data.content[1].content);
}
}
}
}
onLoad 函数处理整个高度的事情。我试图在操作新元素之前使用 setTimeout 方法使 DOM 完全加载。将超时设置为更大的值(比如说 500)对我来说很好,但我猜这不是正确的方法。
提前致谢
【问题讨论】:
-
尝试在for循环之后调用
onLoad();
标签: javascript ajax json jquery