一、button
在一个通过layer.open打开的窗体中,再次调用layer.open
html:
<button class="layui-btn layui-btn-normal" id="btn" >打开</button>
js:
$('#btn').on('click', function () {
layer.open({
type: 2, //type:0 也行
title: "新窗口",
area: ["1000px", "80%"],
content: 新窗口地址,
resize: false,
btn: ['确认'],
yes: function (index, layero) {
//执行相关回调操作
layer.close(index); //关闭弹窗
}
});
});
以上代码运行正常,可正常调用,但是在打开新窗口的瞬间,新窗口会闪退了 ,为啥呢?
没有具体进行深究 但是猜测原因跟窗体index索引层级有关系,根据问题找到两个处理方法如下:
方案一:在layer前加上parent 既可
js:
$('#btn').on('click', function () {
parent.layer.open({
type: 2, //type:0 也行
title: "新窗口",
area: ["1000px", "80%"],
content: 新窗口地址,
resize: false,
btn: ['确认'],
yes: function (index, layero) {
//执行相关回调操作
layer.close(index); //关闭弹窗
}
});
});
方案二:标签本身的问题(因为本身标签就是button 往往很容易忽略了 type="button" 这个属性)
<button class="layui-btn layui-btn-normal" id="btn" >打开</button> 会闪退
<button class="layui-btn layui-btn-normal" id="btn" type="button" >打开</button> 不会闪退
不太清楚layui 的编译机制,为何 type="button" 有没有这个属性的差别那么大?希望有研究过的博友解答一下