使用jquery从外部源加载信息后获取div的高度和宽度

时间:2012-02-23 09:38:03

标签: jquery load popup modal-dialog dimensions

我见过与此类似的问题,但没有找到适合我情况的答案。我使用jQuery创建了一个简单的模态弹出插件,运行方式如下:     $('#popup').popupElement("http://www.example.com #somediv");

单击选择器#popup时,它会从其他网站加载div。点击功能如下所示:

            $(thisObj).click(function(e){
            e.preventDefault();
            $("#popupDiv").load(div);
            centerPopup();
            loadPopup();
        });

问题是当它将外部div加载到popupDiv中时,popupDiv的高度和宽度为0,因此centerPopup()无法使其居中。单击#popup链接几次后,popupDiv的维度会自行修复。有没有办法确保在调用centerPopup()之前将popupDiv设置为正确的维度?

2 个答案:

答案 0 :(得分:0)

您是否尝试默认隐藏元素,然后在调用centerPopup()之前,先显示它(),然后隐藏它的可见性,然后检查它的width()和height()看看它是否已经有尺寸?

答案 1 :(得分:0)

尝试将centerPopup()loadPopup()的来电置于load()的回调函数中。这将确保在您尝试显示弹出窗口之前内容位于DOM中,这意味着应该可以访问高度和宽度。试试这个:

$(thisObj).click(function(e){
    e.preventDefault();
    $("#popupDiv").load(div, function() {
        centerPopup();
        loadPopup();
    });
});