做一个招聘信息的网站_用什么做网站的软件,电脑安装手机wordpress,网站运营计划,专业足球网站建设在thinkadmin里面#xff0c;窗口的的一些方法全部都集成在admin.js里面#xff0c;在之前的文章中也有出现过类似的问题#xff0c;就是对动态加载的数据进行统计#xff0c;那时候写也是想记录下#xff0c;现在自己都不记得是哪个站用的了#xff0c;所以在这里也把这…在thinkadmin里面窗口的的一些方法全部都集成在admin.js里面在之前的文章中也有出现过类似的问题就是对动态加载的数据进行统计那时候写也是想记录下现在自己都不记得是哪个站用的了所以在这里也把这次的操作记录下
这次是因为有些操作必须等到窗口关闭以后才需要运行所以看下弹出的代码基本都是运用data-modaldata-opendata-iframe等进行窗口操作
所以我们看下admin.js的代码 onEvent(click, [data-modal], function () {var un undefined, emap this.dataset, data {open_type: modal};return applyRuleValue(this, data, function () {return $.form.modal(emap.modal, data, emap.title || this.innerText || 编辑, un, un, un, emap.area || emap.width || 800px, emap.offset || auto, emap.full ! un);})});
这里可以看出他是调用的集成的from里面的modal方法然后我们再看这个方法
/*! 加载 HTML 到弹出层 */this.modal function (url, data, name, call, load, tips, area, offset, isfull) {this.load(url, data, GET, function (res) {if (typeof res object) return $.msg.auto(res), false;return $.msg.mdx.push(this.idx layer.open({type: 1, btn: false, area: area || 800px, resize: false, content: res, title: name || , offset: offset || auto, success: function ($dom, idx) {typeof call function call.call($.form, $dom);$.form.reInit($dom.off(click, [data-close]).on(click, [data-close], function () {onConfirm(this.dataset.confirm, function () {layer.close(idx);});}));}})), isfull layer.full(this.idx), false;}, load, tips);};
这里看出他是定义了layer.open找到这个我们结合layui的文档就可以看出想要执行窗口关闭以后我们只需要在对应的layer.open增加一个关闭后回调即cancel也可以增加一个销毁后回调end
但是又不是每个弹窗都需要执行这个回调那我们最好的办法就是再增加一个参数来判断是否执行回调但是这样的改动不是很有必要因为我目前只需要针对一种特定的情况执行所以这边我就偷个懒用原本有的参数来判断而其中最常用的肯定是宽度area了所以改完以后的代码如下
/*! 加载 HTML 到弹出层 */this.modal function (url, data, name, call, load, tips, area, offset, isfull) {this.load(url, data, GET, function (res) {if (typeof res object) return $.msg.auto(res), false;return $.msg.mdx.push(this.idx layer.open({type: 1, btn: false, area: area || 800px, resize: false, content: res, title: name || , offset: offset || auto, success: function ($dom, idx) {typeof call function call.call($.form, $dom);$.form.reInit($dom.off(click, [data-close]).on(click, [data-close], function () {onConfirm(this.dataset.confirm, function () {layer.close(idx);});}));},end: function () {// 用宽度来判断是否需要关闭后刷新if(area 91.1%) {console.log(此处执行需要的操作)}}})), isfull layer.full(this.idx), false;}, load, tips);};
当然知道怎么改以后可以实现的方法有很多我这边的办法不可取因为后期你这里可能就是一段没有用处的代码或者影响到其他弹窗然后你会半天找不到为什么所以如果这个回调是系统的常用回调的话建议还是自己多加个参数吧