关于layer.open弹出层单击事件如何调用父窗口方法的说明

首先,关于layer弹出层的简介这里不做赘述,这里简单介绍下关于layer.open({ })弹出层中通过单击事件,来调用父窗口方法的实现方式:

单刀直入,JS的实现方式可以如下(以单击“修改密码”按钮来弹出layer.open()进行修改密码为例):

//修改密码
    $("#ChangePWD").on('click', function () {
        layer.open({
            type: 2
            , title: '修改密码'
            , area: ['390px', '250px']
            , skin: 'layer-ext-seaning'
            , shade: 0.5
            , maxmin: false
            , content: '/Home/ChangePWD'
            , btn: ['提交', '取消']
            , yes: function (layero, index) {
                var newpsw = window[index.find('iframe')[0]['name']];
               newpsw.submit();
            }
            , btn2: function () {
                var index = parent.layer.getFrameIndex(window.name);
                parent.layer.close(index);
            }
        })
    })

简单介绍:

content: '/Home/ChangePWD' :指项目路径下的Home目录中的ChangePWD修改密码页面;

btn: ['提交', '取消'] :弹出层中要显示的按钮;

yes: function (layero, index) { }:单击确定按钮(默认为第一个)触发的事件,layero为当前层索引,index为当前层DOM对象;

btn2: function () { } :对应“取消”按钮要触发的事件。

实现的重点是yes: function (layero, index) { } 这里,如果弹出层的content里带的是一个独立的页面,

则在浏览器中解析出来的是这个页面包括在<Ifram></ifram>标签之中,

所以 var newpsw = window[index.find('iframe')[0]['name']]; 这句话一般情况下几乎是可以照搬的,这里我们就把父窗口中的所

有元素赋给了一个对象变量newpsw,而sumit()方法就是父窗口中定义的提交事件,大致如下:

于是,我们就用newpsw.sumit()调用了它。

PS:有些人需要在弹出层中加入2个以上的按钮事件,那么参照贝btn2的事件定义,我们应该能够得到启发。

PS:之所以在这里叙述以上内容,是因为度娘里很难找到关于layer.open()调用父窗口事件的有效介绍,包括在layer的官网上也都比较费劲,

很难满足在网上快速有效的查阅此类资料的需求,特此记之。

以上。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值