使用www.layui.com的open方法。
例如这种场景。
<div id="result">
<img src="nowin.png">
</div>
<script>
function result(){
layer.open({
type: 1,
title: false,
closeBtn: 0,
area: ['842px', '440px'],
skin: 'layui-layer-nobg', //没有背景色
shadeClose: true,
content: $('#result')
});
}
</script>
如果你先打开一次对话框调用result()方法,模态框会正确弹出来。点遮罩部位也能正常关闭对话框。
但是你业务动作需要你通过代码的方式再次调用这个result。
例如,你先调用了reuslt方法,再执行下面的业务代码。
layer.closeAll(); //关闭所有弹出层
result(); //显示模态框
你会发现有个叫layui-layer-shade的div层关不掉,页面发灰!
解决方法:
延迟500毫秒后再调用reuslt,就解决问题。
layer.closeAll();
setTimeout( 'result()', 500);