弹窗组件-layer(只限框架中使用)

支持跨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]);