我想展示一个“ajax加载对话框”,它会阻止用户操作(模态),但没有覆盖层。
以下是对话框的初始化代码:
$("<div></div>").dialog({
modal: true,
dialogClass: "noOverlayDialog",
autoOpen: false, //opened later
...
});
我添加了以下CSS来隐藏叠加层:
.ui-dialog.noOverlayDialog + .ui-widget-overlay { opacity: 0 !important; }
然而,当我调用
dialog("open")
时,遮罩层会闪烁然后消失,就好像我使用Javascript将其隐藏一样。使用display:none;
或visibility:hidden
也会产生相同的效果。为了确保是CSS移除了遮罩层而不是其他原因,我删除了CSS代码行,遮罩层总是可见的。
这是为什么?我认为静态CSS不应该有这种行为,遮罩层应该立即被隐藏而没有闪烁。
如果我找不到直观的解决方案,也许一个替代办法是将模态选项设置为false以完全防止遮罩层,然后编写代码来实现模态行为。无论如何,我需要一个可行的解决方案。
.noOverlayDialog
的特定对话框。如果这不改变您的建议,请回答(而不是评论)并给出一个示例,我会尝试一下。谢谢。 - parliament