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

时间:2012-02-16 14:56:40

标签: jquery

我正试图将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()应该是同步的!?

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

1 个答案:

答案 0 :(得分:2)

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

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