我正在使用以下代码访问我的某个网站。我知道有很多方法可以创建一个对话框。但由于某种原因,我需要遵循这些结构。
//On click trigger a popup box
$('#terms').click(function(e){
popupBox(e);
});
//Create a Popup Box
function popupBox(e){
e.preventDefault();
$('body').width($('body').width());
$('body').css('overflow', 'hidden');
$('<div id="popupbox" title="Terms and Conditions"><!-- popupbox - Edit by Yesh --></div>').appendTo('body')
.html('<div><h1>Lorem Ipsum Title</h1></div><div><p>Lorem ipsum dolar sit amet </p></div><div><small>Read it before accept</small></div>')
.dialog({
modal: true, title: 'Terms and Conditions', zIndex: 9999, autoOpen: true,
width: '60%', resizable: false,
close: function (e) {
e.preventDefault();
$(this).remove();
$('body').css('overflow', 'auto');
},
});
}
问题是当我点击标题时。它被隐藏(未关闭)。那么,如何修复呢?
我的JSFIDDLE工作正常。
答案 0 :(得分:1)
当无法重现您所面临的问题时,几乎无法回答。尝试缩小问题范围:
简而言之,请向我们展示更多代码。
答案 1 :(得分:1)
问题与垂直滚动有关。
打开对话框时,您可能会在页面上向下滚动。然后,单击对话框的标题栏以将其拖动时,对话框将跳至页面下方,通常从视图中隐藏。使其关闭的唯一方法是按Esc键。您的JSFiddle没有显示问题,因为它的垂直高度不足以进行滚动。
Here's a modified version of your JSFiddle,并添加了垂直空间以说明问题。
如this post中所述,解决方案是将对话框的样式从position: absolute
更改为position: fixed
:
.ui-dialog { position: fixed; }
Here's another JSFiddle,已解决问题。