layer弹框content是一个DOM遮罩全屏
因为layui官网说 如果弹层的内容content是某个DOM元素的话,要放在body的根节点下。不能放在div里面了。
所以如果不在body根目录下的话会导致遮罩遮挡全屏,因为最后生成的遮罩DOM元素的位置是body的子级,所以知道弹层的DOM要和遮罩的DOM 要在同一层。
如图:
所以这里再弹层的success的事件里面进行了处理,将遮罩的DOM位置挪动了一下,和弹层DOM元素同一级,代码如下:
var ht = nulltable.on('tool(orderList)', function (obj) { selectData = obj.data; var layEvent = obj.event; if (layEvent == 'delete') { //表格按钮名 console.log( selectData.id) ht=layer.open({ type: 1, shade: 0.3, title: selectData.id+"合同", //不显示标题 area: ['445px', '560px'], shadeClose:true, content: $('.tableBox') ,success:function(layero){ var mask = $(".layui-layer-shade"); mask.appendTo(layero.parent()); //其中:layero是弹层的DOM对象 } }); } }
layer.close(ht)
给弹框定义名称,关闭时可使用layer.close(弹框变量名)