layer阻止默认关闭事件

本文介绍如何利用layer.js库中的cancel回调函数来阻止弹窗的默认关闭行为,并通过layer.confirm实现自定义的关闭确认逻辑。此外,还展示了如何在成功获取数据后初始化富文本编辑器UEditor。

layer阻止默认关闭事件

$.post("reportContent/updatePre.do", {id : id}, function(str){
          layer.open({
            title: '编辑报告',
            type: 1,
            maxmin:true,
            shade: [0.8,'#444'],
            area:'1000px',
            content: str ,//注意,如果str是object,那么需要字符拼接。
            success : function(data) {
                ued = UE.getEditor('editor',{height:500});
                ued.ready(function() {
                      con=ued.getAllHtml();
                 });
                //ue.setHeight(500);
            },
            end: function () {
                resetForm();
            },
            cancel: function(index){
            layer.confirm('是否保存当前数据?',{btn: ['是','否']} ,function() {
            document.getElementById("myModal").submit();  
            }, function(){
            layer.closeAll();
            });
            return false;
            }
        });
    });

 

posted @ 2017-06-07 14:30 小天yy_sina 阅读( ...) 评论( ...) 编辑 收藏
### Layer.open 点击关闭触发的方法或事件处理 当 `layer.open` 创建的弹窗被关闭时,可以通过配置项中的回调函数来捕获这一行为并执行特定的操作。具体来说,在定义 `layer.open` 的参数选项时,可以利用 `end` 回调属性指定一段代码,在用户通过点击右上角叉号或其他方式关闭对话框时触发。 对于带有按钮的情况,则可以在对应的按钮处理器内实现自定义逻辑: ```javascript layer.open({ type: 2, title: '操作提示', content: 'http://example.com', //假设这是要加载的内容地址 btn: ['确认', '取消'], yes: function(index, layero){ console.log('点击了【确认】'); // 执行一些业务逻辑... layer.close(index); //手动关闭当前层 }, cancel: function(){ console.log('点击了【取消】或者是关闭图标'); return false; //阻止默认关闭动作,如果返回true则允许关闭 }, end:function(){ console.log('无论何种原因只要本层关闭就会触发此方法'); // 可在此处加入清理工作或是其他必要的收尾任务 } }); ``` 上述例子展示了如何监听不同类型的关闭行为,并分别作出响应[^2]。值得注意的是,除了显式的按钮交互之外,还有可能因为外部因素导致弹窗消失(比如设置了定时器自动关闭),这时同样会触发展示在 `end` 方法里的逻辑[^3]。 另外需要注意的是,有时候可能会遇到关闭子页面后父页面某些功能异常的问题,这可能是由于DOM结构变化引起的事件绑定丢失所致。针对这种情况,建议采用委托的方式重新设置事件监听器,或者是在每次打开新窗口前保存原有状态以便恢复[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值