我正在构建一个使用slideDown和jQuery的ajax的Joomla模块。
它的工作方式是填充slideDown div,计算具有最高高度的div子元素,并调整包含div高度的大小以便显示。
问题是如果页面没有被缓存(例如,如果它是在第一次加载页面时)高度没有正确显示,如下所示
但是在第二次点击等情况下,它会正确显示如下
我认为这是因为在计算高度之前,div子元素的内容未完全填充,因此会生成错误的高度。我已经尝试了一些事情以确保不会发生 - 现在我正在使用回调函数以及填充div标签的函数。
快速帮助将受到高度赞赏,谢谢!
编辑 - 这是填充的代码
menuItemAjax: function (urlContent, dataContent) {
jQuery.ajax({
type: "POST",
url: urlContent,
data: dataContent, // data to send along with url
complete: function () {
//console.log("Process completed");
},
success: function (returnedData) {
WetvCreateHtml.popDropDownDiv(returnedData, function() {
var ddChildren = dropdownDiv.children(), highestHeight = 0;
ddChildren.each(function(){
if (jQuery(this).height() > highestHeight) {
highestHeight = jQuery(this).height();
}
});
dropdownDiv.animate({ height: highestHeight });
});
},
error: function () {
//console.log("Error occured");
},
statusCode: {
404: function() {
//console.log("Page not found");
}
}
});
},
popDropDownDiv: function(returnedData, callback) {
dropdownDiv.html(returnedData);
if (typeof(callback) == "function") {
callback();
}
}