为了实现在网页上动态响应按钮,弹出能够输入信息的窗口,尝试使用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();
})
|