支持跨iframe、多弹窗; PS:本实例只是对原组件进行交互封装,最大限度的保留了原组件的配置属性(源码有定制修改,不能直接用官方版本覆盖升级);官网地址:http://layer.layui.com/
手册地址:comTools-demo.html
1. 新增自定义配置项:[option] other:{"noTriEnd":true}可阻止cancel时触发end回调方法*/;
2. 修改组件 layer.close(index,noTriEnd_); [cumCloseWin(index,noTriEnd_)]方法,@description 关闭指定的弹窗;* @param
{Number} index 需关闭的弹窗的index; * @param {Boolean} noTriEnd_ 是否阻止触发END回调方法;true
3. 因原组件部分方法在特定场景下 存在已知的层级BUG,固建议使用COM_TOOLS.alert()替换layer.msg(); COM_TOOLS.confirm()替换layer.confirm();
4. 新增自定义配置项:[option] other:{cusOffsetLeft:0} 控制弹窗定位左侧偏移量,默认0,如果是右侧定位,请使用负数;
5. 新增自定义配置项:[option] other:{"btnStyleArr": []} 自定义弹窗按钮组样式类 默认:无;示例: ['btn-info','btn-danger']
6. 注意: 当层类型为 信息框(type:0)或 加载层(type:3)时, 只能最多同时存在一个,后面的会销毁之前的同类型层;
组件包
两种方式:
1. 框架内透传方式(字符串或对象),异步(页面“加载完成后”才有此数据)
2. URL方式(字符串)
差异请查看DEMO1
组件包
/* 父页面声明处理方法 */ // ps:fn[n],名称示例,随意起名,本页面中不重复即可 COM_TOOLS.private_obj_={fn1:function(yourData){[yourCode||yourFn]},fn2:function(yourData){[yourCode||yourFn]}} //不建议此形式 //等同于(建议) COM_TOOLS.private_obj_.fn1=function(yourData){[yourCode||yourFn]}; COM_TOOLS.private_obj_.fn2=function(yourData){[yourCode||yourFn]}; //等同于 COM_TOOLS.private_obj_.fn1=yourFn1; COM_TOOLS.private_obj_.fn2=yourFn2; /* 子页面如何调用 */ COM_TOOLS.callParentWinFn('fn1',[yourData]); COM_TOOLS.callParentWinFn('fn2',[yourData]);
/* 父页面声明处理方法 */ /* ps:fn[n],名称示例,随意起名,本页面中可重复,每次子弹窗打开前会销毁 */ //(建议的形式) $('.btn').click(function(){ //点击按钮打开弹窗 cumParentWinModal('新建弹窗','url',{ callback:{ fn1:function(yourData){[yourCode||yourFn]}, //函数内如有操作input元素的值时,请使用.trigger('focusout.validate')触发验证; select、单复选框使用.trigger('click.validate')触发验证 fn2:function(yourData){[yourCode||yourFn]} } }); }); //或者(不建议的形式) $('.btn').click(function(){ //点击按钮打开弹窗 cumParentWinModal('新建弹窗','url',{callback:{fn1:'cbfn1',fn2:'cbfn2'}}); COM_TOOLS.setCacheFnForChildWin( { cbfn1:function(yourData){[yourCode||yourFn]}, cbfn2:function(yourData){[yourCode||yourFn]} } ); }); /* 子页面如何调用 */ COM_TOOLS.callParentWinCacheFn('fn1',[yourData]);