博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
easyui弹出窗关闭前调用确认窗口,先关闭页面后调用弹出窗口
阅读量:4678 次
发布时间:2019-06-09

本文共 1418 字,大约阅读时间需要 4 分钟。

弹出窗关闭的时候提示是否关闭,同时进行一些对应的方法调用,
然而在进行页面关闭调用的时候,往往页面关闭了,才弹出确认对话框,
$.messager.confirm和panel的onBeforeClose不兼容性问题.
一.初始代码:
    $(
'#_MoneyExpense_show_dialog'
).panel({
       onBeforeClose:
function
(title){
           $.messager.confirm(
'提示'
,
'确定关闭'
,
function
(r){  
               
if
(r){
                  
return
true
;
               }
else
{
                  
return
false
;
               }
           })
    }})
二.起因分析:
$.messager.confirm为异步方法.在easyui说明中题头已经提到,

Messager(消息窗口)

使用$.messager.defaults重写默认值对象。

 
消息窗口提供了不同的消息框风格,包含alert(警告框), confirm(确认框), prompt(提示框), progress(进度框)等。所有的消息框都是异步的。用户可以在交互消息之后使用回调函数去处理结果或做一些自己需要处理的事情。
$.messager.confirm还没有进行返回,即你还没有点击按钮的时候onBeforClose已经接收到了""做为返回值.而且该值被认为true.然后关闭了页面,导致了先关闭页面,再弹窗提醒是否关闭的情况.
三.解决方式:
引入全局变量,对状态进行控制.曲线救国,变异步为两次调用的伪同步方法.
设置全局变量默认为false;当页面要求关闭时,判断全局变量
     全局变量为true,设置全局变量为false,关闭页面.
     全局变量为false,不关闭页面,打开弹窗
          选择确定,设置全局变量为true,再次调用关闭页面的方法.
          选择取消.什么都不做.
这样解决,有点浪费效率和资源.没有从根源上解决问题.有更好的方式再进行优化吧!
 
四.解决代码如下:
    
var
msg =
false
;
//设置全局变量;
    $(
'#_MoneyExpense_show_dialog'
).panel({
       onBeforeClose:
function
(){
           
if
(msg){
//判定全局变量为真;
               msg=
false
;
//设置全局变量为false;
               
return
true
;
//关闭页面;
           }
else
{
               $.messager.confirm(
'提示'
,
'确定关闭'
,
function
(r){  
                  
if
(r){
//弹窗提示选择为确定;
                      msg =
true
;
//设置全局变量为真,及关闭页面;
                      $(
'#_MoneyExpense_show_dialog'
).panel(
'close'
);
                      
//再次调用关闭页面方法.全局变量为true,则进入弹出窗方法.
                  }
               });
               
return
false
;
//关闭页面时,全局变量为false,则不进行关闭页面.
           }
       },
    });
五.备注:
因使用easyui不是太多,更多的时候是帮别人解决问题的时候遇到测试的,
以上观点只为个人观点,非最优解决方案,欢迎大神给出更优解决方案,多多交流才有进步;
有新问题请留言,大家一起探讨一起进步;

转载于:https://www.cnblogs.com/yswb/p/6288551.html

你可能感兴趣的文章
格网与四叉树索引
查看>>
Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?...
查看>>
多张照片拍摄、图片浏览
查看>>
html(5) css
查看>>
Azure Web连接到Azure MySql Db
查看>>
《麻辣江湖》即将上线!
查看>>
Mybatis中mapper.xml文件判断语句中的单双引号问题
查看>>
frameset和frame
查看>>
饥饿的小易(规律,同余大数)
查看>>
ats透明代理
查看>>
PHP 小代码
查看>>
2016/03/16 codes
查看>>
2018年7月21日工作总结
查看>>
Linux shell 命令判断执行语法 ; , && , ||
查看>>
vim代码格式化插件clang-format
查看>>
What does the dot after dollar sign mean in jQuery when declaring variables?
查看>>
windows registry
查看>>
jquery 动画总结(主要指效果函数)
查看>>
【BZOJ4155】[Ipsc2015]Humble Captains
查看>>
【事件】阻止事件的冒泡
查看>>