一、问题描述:用parent.layer.open(),遮罩覆盖了弹出层,位置也有所偏移,排版上title也没有了,如下图,图片是之前在网上找的
image
二,解决办法:就是结合layui框架的laytpl 引擎模板使用
1,先在HTML页面中添加代码块
<script id="demo" type="text/html"> <h3>{{ d.title }}</h3> <ul> {{# layui.each(d.list, function(index, item){ }} <li> <span>{{ item.modname }}</span> <span>{{ item.alias }}:</span> <span>{{ item.site || '' }}</span> </li> {{# }); }} {{# if(d.list.length === 0){ }} 无数据 {{# } }} </ul></script>
2,
var data = { //数据 "title":"Layui常用模块" ,"list":[{"modname":"弹层","alias":"layer","site":"layer.layui.com"},{"modname":"表单","alias":"form"}]}var getTpl = document.getElementById('demo').innerHTML;laytpl(getTpl).render(data, function(html){ parent.layer.open({ type:1, content:html, area: ['500px', 'auto'] })});
这样就可以解决上面的显示问题了,数据赋值也是没有问题的。
3,模板引擎也可以给一个div动态多次添加内容,不是添加一次
#html页面<div id="view"></div> #jsvar getTp2 = document.getElementById('demo').innerHTML;laytpl(getTp2).render(data, function(html){ $(document.getElementById("view")).append(html)});
以上方法,亲测OK