【发布时间】:2011-02-07 21:39:36
【问题描述】:
我对 Jquery UI 模式对话框有疑问。我有模态对话框(dialogA),它可以创建另一个模态对话框(dialogB)。在 dialogB 的第二次创建和关闭后,dialogA 的覆盖消失了。
这是我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><link type="text/css" rel="Stylesheet" href="ui-lightness/jquery-ui-1.8.custom.css" />
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.custom.min.js"></script>
<script type="text/javascript">
function createDialog(dialogId) {
$('#' + dialogId).dialog({
autoOpen: true,
modal: true,
buttons: {
'close': function() {
$(this).dialog('close');
},
'create': function() {
var newDialogId = dialogId + '1';
$('body').append('<div id="' + newDialogId + '">' + newDialogId + '</div>');
createDialog(newDialogId);
}
},
close: function() {
$(this).dialog('destroy');
$(this).remove();
}
});
}
$(document).ready(function() {
$('#button1').click(function() {
var dialogId = 'dialog';
$('body').append('<div id="' + dialogId + '">' + dialogId + '</div>');
createDialog(dialogId);
});
});
</script>
</head>
<body>
<button id="button1">Create dialog</button>
</body>
</html>
复制步骤:
1.通过点击按钮创建一个对话框(dialog)
2. 通过单击第一个对话框内的“创建”按钮创建另一个对话框 (dialogA)
3. 关闭对话框A
4. 重复步骤 2-3
5.第一个对话框的覆盖消失了
谢谢
【问题讨论】:
-
绝对看起来像一个错误,如果您为相同的 z-index 创建两次模式对话框,则覆盖会破坏。您可以手动增加 z-index 吗?作为替代方案,您可以通过一些插件自己进行模态叠加,例如flowplayer.org/tools/demos/overlay/modal-dialog.html
标签: javascript jquery-ui dialog modal-dialog overlay