我见过与此类似的问题,但没有找到适合我情况的答案。我使用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设置为正确的维度?
答案 0 :(得分:0)
您是否尝试默认隐藏元素,然后在调用centerPopup()之前,先显示它(),然后隐藏它的可见性,然后检查它的width()和height()看看它是否已经有尺寸?
答案 1 :(得分:0)
尝试将centerPopup()
和loadPopup()
的来电置于load()
的回调函数中。这将确保在您尝试显示弹出窗口之前内容位于DOM中,这意味着应该可以访问高度和宽度。试试这个:
$(thisObj).click(function(e){
e.preventDefault();
$("#popupDiv").load(div, function() {
centerPopup();
loadPopup();
});
});