为了实现在网页上动态响应按钮,弹出能够输入信息的窗口,尝试使用layui的模态框。但是发现一个问题,就是模态框如果不是点击那个×,想要通过按钮实现弹窗的关闭时灵时不灵。查阅了很多网页,确定使用代码为:
$("#OKBUTTON").click(function(){
parent.layer.close(layer.index);
checkButton();
})
但是发现当弹出模态框不进行复杂操作时这个方法是有效的,一旦我需要在模态框里调用ajax调用前后台通信,就不行了。最后请教大神,才知道layer.index是会发生变动的,而我当前所适用的模态框的index是不变的。当因为操作导致layer.index变化后,就没办法关闭当前的模态框了。最后采用在调用模态框的函数里增加了获取本模态框index的操作,然后将这个特定的index回传到close函数里面就不会出问题了。而checkButton是不需要的。至于为啥别人说要用checkButton我也不知道原因。代码如下:
function openSelection(){
$("[name='selectData']").val("199");
layui.use(['layer'],function () {
var $ = layui.$
,layer = layui.layer;
layerindex=layer.open({
type:1,//类型
area:['800px','600px'],//定义宽和高
title:'选择显示信息',//题目
shadeClose:false,//点击遮罩层关闭
content: $('#chooseElement')//打开的内容
});
})
}
关闭模态框:
$("#OKBUTTON").click(function(){
parent.layer.close(layerindex);
checkButton();
})