我认为ExtJs自定义事件的机制很重要,可以实现观察者模式,现在给出例子并给出说明,希望对ExtJs的继承机制和自定义事件机制的理解有帮助。
测试代码内容如下,代码解释参见文章后面:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <script type="text/javascript" src="ext-base.js"></script>
- <script type="text/javascript" src="ext-all.js"></script>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <title>http:
- </head>
- <body>
- </body>
- </html>
- <script>
- Employee = function(name){
- this.name = name;
- this.addEvents({
- "fired" : true,
- "quit" : true
- });
- }
- Ext.extend(Employee, Ext.util.Observable,{});
- function myHandler1(empolyee){ alert("handler1"); }
- function myHandler2(empolyee){ alert("handler2"); }
- var emp = new Employee('tom');
- emp.on('quit', myHandler1);
- emp.on('quit', myHandler2);
- emp.fireEvent('quit', this);
- </script>
5-6 行引入ExtJs的两个基本库,ExtJs库的下载地址参考
下载
14-20声明一个类,这个类中定义了两个事件"fired" "quit".
21行 声明Employee的父类是Ext.util.Observable,实现观察者模式。
22-23行:声明两个方法
function myHandler1(empolyee){ alert("handler1"); }
function myHandler2(empolyee){ alert("handler2"); }
24行:声明Employee的实例
25-26行:声明emp中的quit事件分别被两个处理函数绑定
27行:触发emp中的quit事件。
结果页面应该依次弹出两个告警对话框,内容分别为handler1 和 handler2