基于Ajax的显示不准确

时间:2014-05-30 16:12:32

标签: javascript jquery css ajax joomla

我正在构建一个使用slideDown和jQuery的ajax的Joomla模块。

它的工作方式是填充slideDown div,计算具有最高高度的div子元素,并调整包含div高度的大小以便显示。

问题是如果页面没有被缓存(例如,如果它是在第一次加载页面时)高度没有正确显示,如下所示

Wrong Display

但是在第二次点击等情况下,它会正确显示如下

Right Display

我认为这是因为在计算高度之前,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();
    }
}

0 个答案:

没有答案