EasyUI的progress对象close方法报错的彻底解决方案

原创 2015年07月10日 23:58:27

今天发现EasyUI的一个BUG,进度条的关闭会影响其它窗体的操作。代码如下:

function saveCoupon() {
    $.messager.progress();
    $("#fm").form("submit", {
        url: "Coupon/PutOnCoupon",
        onSubmit:function(){
            var isValid = $(this).form('validate');
            if (!isValid) {
                $.messager.progress('close');
            }
            return isValid;
        },
        dataType: "text",
        success: function (result) {
            $.messager.progress('close');
            $("#dlg").dialog("close");               
            $("#couponSupplyGrid").datagrid("reload");
        }
    })
}
当代码顺利保存优惠券数据后,执行success处的代码,按照本意,先关闭进度条,然后关闭对话框,最后重新加载数据表格,但是,当执行完毕$.messager.progress('close')后,后续代码无法正常执行,查看游览器调试窗口,显示如下错误信息:

Uncaught TypeError: Cannot read property 'onClose' of undefined

经过尝试,把 $.messager.progress('close'); 代码放到最后执行,一切OK。

晚上回到家,对 $.messager.progress('close');  执行过程跟踪了一下,发现在在4844行的地方有个BUG,原代码如下:

onClose: function() {
	if (this.timer) {
		clearInterval(this.timer);
	}
	if (_2af.onClose) {
		_2af.onClose.call(this);
	} else {
		$.messager.defaults.onClose.call(this);
	}
}
正是 if (_2af.onClose) 这段条件语句中_2af为undefined时报错了,根据代码的结构,可以猜出作者本意是若_2af对象没有onClose事件,则调用默认的close事件处理函数。因此,可以将此条件语句改为如下:

onClose: function() {
	if (this.timer) {
		clearInterval(this.timer);
	}
    if (_2af && _2af.onClose) {
		_2af.onClose.call(this);
	} else {
		$.messager.defaults.onClose.call(this);
	}
}
经测试,执行 $.messager.progress('close'); 时不再报错了,问题圆满解决。

本人使用的是easyui-1.4.3版本。







解决easyui中重复调用$.messager.progress('close')报错问题

问题描述:把$.messager.progress('close')放在全局ajax函数的complete方法里就可以免去每次调用$.messager.progress(options)后都需要调用一...
  • lf124
  • lf124
  • 2015年10月12日 09:37
  • 3288

$.messager.progress不显示问题

由于对js内部执行不是特别了解, 出现问题的情况是:执行多个ajax请求,然后在用程序判断多个ajax请求是否都完成,完成则关闭$.messager.progress窗口。但实际情况是$.messa...

EasyUI的progress对象close方法报错的彻底解决方案,easyuiprogress

今天发现EasyUI的一个BUG,进度条的关闭会影响其它窗体的操作。代码如下: function saveCoupon() { $.messager.progress(); ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

算命的科学性

  从小到大,老师、学者、政府一直给我们倡导一个概念:算命是假的,唯心的,不举科学性的。那么我们撇开算命来讨论一下世界是否可以计算。  我们知道,世界各种物体都由各类最小物质所构成,当前发现的最小物质...
  • mole
  • mole
  • 2010年06月28日 14:24
  • 669

如何将div高度填满剩余高度

下列代码中navbar高度为30px,content高度需要填满浏览器的剩余高度 <div id="body">    <div id="navbar"></div>    <div id="cont...
  • mole
  • mole
  • 2015年01月04日 21:55
  • 2706

《UNIX环境高级编程》单个源码编译方法和编译问题彻底解决方案

对于很多初学 《UNIX环境高级编程》(AdvancedProgramming in the UNIX Environment,简称APUE,以下使用简称)的朋友 ,第一个遇到的问题可能就是该书中的源...

webdriver.close 报错问题 解决方案

解决方案转载自:  http://blog.csdn.net/aerchi/article/details/43985099 使用appium wd.close()时遇见报错:...

主程序调用DLL窗体cannot assign a class to a class问题的彻底解决方案

转自http://topic.csdn.net/u/20091216/14/0906d982-c004-417a-becb-07efdbea81ae.html  经验共享:   主程序调用DLL窗...
  • deepfar
  • deepfar
  • 2012年01月17日 13:12
  • 315

《UNIX环境高级编程》编译问题彻底解决方案

前些天,写了篇博客( 最后一年的时间,应该做些什么呢? )发誓要好好学一下《UNIX环境高级编译》(下面简称APUE),可一个小小的编译问题就悲剧了我好几天,比如APUE书上的第一个程序是这样的: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EasyUI的progress对象close方法报错的彻底解决方案
举报原因:
原因补充:

(最多只允许输入30个字)