我先声明下,我是改动源码,网上的其他方法我试过了,不行。我是写java后台的,前端也是小白,可能讲的也也不是很清楚。

  首先我想到的是在网上找到解决方法,我找到一个方法说在jquery.easyui.min.js里面加入一段代码,我试过了,不行。

根据这个思路,更改easyui源码,我们来看源博主是怎么改的。

我用的是easyui1.3.2,跟原博主的版本也是不一样的,easyui源码里面获取window的方法名也不叫_211,然后ctrl+h搜索var win,在jquery.easyui.min.js里面找到了var win=_237(_238, _239, _23a);这个方法,我猜测,应该是跟源博主说的一样,版本不一样,方法名有所改变。然后我找到_237这个方法,发现他返回的是一个window。再去看openAlert()这个方法,从源头上面调用是调用$.messager这个对象的一个属性,属性为alert,是一个方法,看下图

先看上面红色框,defaults.ok,然后执行传入的fn回掉函数,然后我结合实际情况,猜测这个就是Messager 窗口点击确认执行的方法。由此可见,点击Messager 窗口确定的时候,会执行你传入的fuction,也就是openAlert()的第四个参数。如果不信,可以在里面加入console.log()试验一下,具体是不是这样,我没有试过,重点并不在这里。在看下面的红色框内。这里调用了_237这个方法获取了一个window,然后我到_237这个方法里面去看。

我们可以看到,_237里面声明了一个window,对这个window进行了一系列操作,别的不看,看箭头指向这个位置。onClose不就是关闭按钮吗,点击关闭按钮执行的函数,函数里面只是做了个延迟0.01秒关闭页面的操作,入口找到了。当时的内心还是很鸡动的,啊呸,激动,哈哈。到这里,我们知道$.messager.alert是一个函数,里面调用了_237这个函数。你调用openAlert()的时候就是在调用$.messager.alert的函数,而$.messager.alert又调用了_237这个方法。这个时候,我们只需要给_237这个方法加入一个参数fn。如下图:

这样就把你传入的回掉函数在Messager窗口点击右上角x的时候执行了。在alert这个函数里面,调用_237这个方法的时候加上fn这个参数就行。当然,_237这个函数是共用的,所以,其他方式打开的窗口调用_237的时候,也需要加入fn这个参数:

这个时候就完成了对源码的修改,个人亲测,没有问题。如果是版本和我不一样,找找这个方法应该就能找到,这个方法很显眼。当然,源码改完只够都需要去测试一把,哈哈。希望能帮助被这个问题所困扰的同学。我一个月更新一片博客,和大家共同成长,一个工作11个月的彩笔的随笔

EasyUI Messager 消息框点击右上角x无法执行回掉函数解决的更多相关文章

  1. 窗口-EasyUI Window 窗口、EasyUI Dialog 对话框、EasyUI Messager 消息框

    EasyUI Window 窗口 扩展自 $.fn.panel.defaults.通过 $.fn.window.defaults 重写默认的 defaults. 窗口(window)是一个浮动的.可拖 ...

  2. 项目一:项目第二天 Jquery ztree使用展示菜单数据 2、 基础设置需求分析 3、 搭建项目框架环境--ssh(复习) 4、 SpringData-JPA持久层入门案例(重点) 5、 Easyui menubutton菜单按钮使用 6、 Easyui messager消息框使用

    1. Jquery ztree使用展示菜单数据 2. 基础设置需求分析 3. 搭建项目框架环境--ssh(复习) 4. SpringData-JPA持久层入门案例(重点) 5. Easyui menu ...

  3. EasyUI - Messager消息框

    全局设定: JavaScript代码: //设置按钮中的文字,默认是-ok/cancel ,可以任意设置文字,比如现在的-确认/取消 $.messager.defaults = { ok: '确认', ...

  4. EasyUI Messager 消息框

    通过 $.messager.defaults 重写默认的 defaults. 消息框(messager)提供不同样式的消息框,包括警示(alert).确认(confirm).提示(prompt).进展 ...

  5. 使用jQuery开发messager消息框插件

    1.插件使用 首先引入jquery库,然后引入dialog.js.dialog.css.messager.js.messager.css,如下: <script type="text/ ...

  6. EasyUI 修改 Messager 消息框大小

    需求是要修改确认消息窗口的大小. 简单的调用方法是这样的: $.messager.confirm('操作确认', '确定批量编辑文章?', function (r) { ... } 这个时候生成的弹窗 ...

  7. ASP.NET 多次点击button后事件执行多次 并发解决 频繁操作解决办法

    首先让我们体验一下频繁操作: 1)打开项目,在后台aspx.cs等服务器页面,设置断点. 2)点击页面按钮 3)调试开始进入断点,然后重复点击页面按钮 4)服务器第一次事件已经处理完毕,调试再次进入了 ...

  8. jQuery EasyUI API 中文文档 - 消息框(Messager)

    http://www.cnblogs.com/Philoo/archive/2011/11/15/jeasyui_api_messager.html Messager  消息框 博客园 风流涕淌 (p ...

  9. Delphi 7中的四种消息框

    Delphi中平常使用的消息框有四种形式,有ShowMessage.MessageDlg.Application.MessageBox.MessageBox.下面来深入了解下这四种形式的实现和使用.1 ...

随机推荐

  1. C++ 句柄类的原理以及设计

    句柄类存在的意义是为了弥补将派生类对象赋给基类对象时发生的切片效应.比如以下的程序: multimap<Base> basket; Base base; Derived derive; b ...

  2. luogu2763 试题库问题 二分匹配

    关键词:二分匹配 本题用有上下界的网络流可以解决,但编程复杂度有些高. 每个类需要多少题,就设置多少个类节点.每个题节点向其所属的每一个类节点连一条边.这样就转化成了二分匹配问题. #include ...

  3. C#操作INI文件(明天陪你看海)

    C#操作INI文件 在很多的程序中,我们都会看到有以.ini为后缀名的文件,这个文件可以很方便的对程序配置的一些信息进行设置和读取,比如说我们在做一个程序后台登陆的时候,需要自动登录或者是远程配置数据 ...

  4. hdoj--5233--Gunner II(map+queue&&二分)

     Gunner II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tot ...

  5. 73. 解决ExtJS TreePanel 的 iconCls设置问题

    转自:https://blog.csdn.net/hanchuang213/article/details/62881568 很久没有写代码了,最近在做一个在线帮助网站,于是又捡起了 ExtJS,我用 ...

  6. Fishnet(几何)

    http://poj.org/problem?id=1408 题意:给出 a1 a2 ... an                b1 b2 ... bn                c1 c2 . ...

  7. html5 历史管理

    1.onhashchange:改变hash值来进行历史管理. <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  8. [Swift]LeetCode1064. 不动点 | Fixed Point

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  9. POI合并单元边框问题解决方法

    http://blog.csdn.net/hardworking0323/article/details/51105430

  10. Javascrpt核心概念(2)--操作符

    学习操作符这个章节最好回忆一下C里的惯例,因为ECMAScript的标准很多继承自C的语法 一元操作符 只能操作一个值得操作符 递增和递减操作符 var age = 29; ++age; //30 v ...