`
小杨学JAVA
  • 浏览: 904085 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Bug:关闭messager.progress造成的组件冲突

 
阅读更多
转:http://www.easyui.info/archives/613.html
(新版本已解决)
Bug:关闭messager.progress造成的组件冲突
 

Easyui的messager组件有show,alert,confirm,prompt,progress这几种消息模式,他们的实现方案基本一致,而且生成的DOM结构也都很类似,都是用以下相同样式的DIV做容器的:

<div class="panel window messager-window"></div>

其实这个容器对应的是messager的window对象,销毁window对象的时候便会把这个容器销毁。当然了,页面上可以存在多个这样的消息容器,这也是应有功能。

我们在关闭某个messager的时候,messager组件会自动销毁对应的容器。但是messager.progress的关闭方法却很有意思,它没有办法获取到当前需要关闭的progress对应的容器,所以采用了另可错杀一千不可放走一个的手段,看看messager.progress('close')的源码就一目了然了:

close : function() {
	var win = $("body>div.messager-window>div.messager-body");
	if (win.length) {
		win.window("close");
	}
}

看到了吗,$("body>div.messager-window>div.messager-body")这个选择器的威力巨大到,会把所有当前页面的消息容器都关闭,就是说当前页面如果同时存在prompt,comfirm等消息容器的时候也会被messager.progress('close')无情地关闭和销毁,这样当prompt,comfirm自身进行销毁的时候便找不到销毁对象,从而出现脚本错误。

原因分析出来了,但是究竟怎么解决呢?这是个比较麻烦的问题,只有要关闭progress的时候能获取到创建progress时产生的消息容器才行,而目前(1.3.1以及之前的版本)的设计模式我们无法获取到这个容易。

因此我们只能想个折中的办法,算是权益之计,将$("body>div.messager-window>div.messager-body")选择器进一步缩小范围,至少要等跟prompt,confirm等其它消息的容器区分开来。

通过源码的分析,我们发现messager.progress的容器内必定包含messager-progress样式的div,所以我们将选择器做一下改进就可达到目地:

close : function() {
	var win = $("div.messager-progress").closest("div.messager-body");
	if (win.length) {
		win.window("close");
	}
}
分享到:
评论

相关推荐

    「字节跳动小程序」开发工具及使用手册

    bugfix: * 1.getStorage 相关 API 判断 Date 格式问题 mac 文件地址; windows 文件地址; 1.8.4 new features: * 1.IDE 基础库对齐客户端 bugfix: * 1.修复 devtools storage 面板数据存储问题 mac 文件地址; ...

    解决XStream注解同名冲突

    多个类注解@XStreamAlias,value相同、且在集合上使用了@XStreamImplicit会出现异常: ... No field 'null' found in class '.....(注解的类路径)' ---- Debugging information ---- ...该包解决了这个bug

    解决weblogic923 BUG:8194412补丁包

    解决weblogic923 BUG:8194412补丁包 weblogic日志报如下错误: Caused by: java.lang.RuntimeException: javax.management.remote.JMXServerErrorException: java.lang.AssertionError: Registered more than one ...

    Berg Soft Next Suite 5 1.2013Delphi 7 - XE3

    fixed: Bug fixes and internal tweaks. NextGrid v5.8 -- added: Count property to InsertRow method. fixed: Bug fixes and internal tweaks. NextDBGrid v5.8 -- fixed: Bug fixes and internal tweaks. ...

    解决bug:Could not locate zlibwapi.dll.专用文件

    该文件能够解决bug:Could not locate zlibwapi.dll. Please make sure it is in your library path!遇到这个bug可以通过下载该文件解决,具体教程见博主的博客。相信很多深度学习小白都遇到了这个bug,快来下载解决...

    bugreport-mars-TKQ1.220829.002-2023-11-06-11-08-42.zip

    标题中的"bugreport-mars-TKQ1.220829.002-2023-11-06-11-08-42.zip"表明这是一个与Android系统相关的bug报告,其中包含了特定设备"Mars"(可能是手机或平板电脑)在特定版本"TKQ1.220829.002"下的错误信息。...

    echarts组件(vue3封装)

    在结合Vue3的情况下,我们可以对ECharts进行封装,以提高代码的复用性和适应性,这就是"echarts组件(vue3封装)"的主题。 首先,我们要了解Vue3的特性。Vue3引入了Composition API,这是一种全新的组织组件逻辑的...

    Python库 | bugbug-0.0.444.tar.gz

    Python库“bugbug-0.0.444.tar.gz”是一个用于开发的软件包,主要面向使用Python作为后端编程语言的开发者。这个压缩包包含版本号为0.0.444的bugbug库,它很可能是一个用于调试、错误检测或者问题追踪的工具。在...

    Python库 | bugbug-0.0.57-py3-none-any.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:bugbug-0.0.57-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    云集科技笑话小偷WAP简单版php v1.7

    7.20修复已知BUG和增加少许功能 7.12增加漫画功能,修复BUG 7.4修复了部分BUG,css红色居中 云集科技笑话小偷WAP简单版php 安装说明: 打开config.php配置网站信息 直接上传到空间(可安装在子目录) WAP...

    Weblogic补丁:Bug8173442_920.jar

    Weblogic补丁:Bug8173442_920.jar

    2021最新产品需求模板系列-Bug探索报告模板.pdf

    1. Bug等级说明:描述了不同严重程度的Bug及其对应用的影响。具体分为致命级、严重级、缺陷级、瑕疵级和建议级五个等级。 - 致命级Bug:直接导致应用崩溃或严重资源不足,如循环报错、无法退出、支付漏洞等。 - ...

    派单O2O 13.1.45 后台模块+前端小程序 解密开源版源码分享.zip(不会不要乱评价可以问我

    3.接口修复服务列表筛选bug 4.优惠卷领取和会员卡购买增加登录验证 5.修复后台门店账户修改时提示账户重复bug 不需要更新小程序 版本号:13.1.44 – 公众号小程序版本 17:31 修复前台身份证上传bug 商家服务...

    蓝点CMS建站系统(LDCMS) 1.0.3.rar

    修复ACC数据库搜索查询有日文字符BUG 环境需求 ○Internet 信息服务(简称:IIS)5.0以上版本 ○组件:Scripting.FileSystemObject(简称:FSO) ○组件:Adodb.Stream ○组件:Persits.Jpeg ○组件:JMail....

    [0.bug:CxC.商用工程之道].肖舸.扫描版.pdf

    C++ 经典书籍

    Python库 | bugbug-0.0.295-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:bugbug-0.0.295-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

Global site tag (gtag.js) - Google Analytics