jquery.html()不同步加载宽度和高度



我正在尝试将div居中,以下是我迄今为止所得到的:

function miniWindow(content) {
    $('#miniWindow').hide();
    $('#miniWindow').css({'top' : '280px', 'left' : '385px'}); //start position
    $('#miniContent').html(content); //<-- the problem line
    //center the div
    setTimeout( function() {
            var width = $('#miniWindow').outerWidth();
            var height = $('#miniWindow').outerHeight();
            $('#miniWindow').css({'left' : '-='+width/2, 'top' : '-='+height/2});
            $('#miniWindow').show();
    }, 1000);
}
miniWindow('fubar'); //invoke

问题是,我需要一个超时来给.html()函数设置宽度和高度的时间,尽管.html()应该是同步的!?

有没有其他不使用超时的解决方案来解决这个问题?

outerHeight()和innerHeight)不适用于隐藏元素。

在设置位置(并获取宽度/高度)之前,请尝试调用$('#miniWindow').show()

最新更新