ExtJs 学习之开篇(二) Observable 给类添加监听
html:代码
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link type="text/css" rel="stylesheet" href="../../extjs-4.1.1/resources/css/ext-all.css" />
<script type="text/javascript" src="../../extjs-4.1.1/bootstrap.js"></script>
<script type="text/javascript" src="../../extjs-4.1.1/locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="event.js"></script>
</head>
<body>
<button id="walk">walk</button>
<button id="eat">eat</button>
<button id="sleep">sleep</button>
</body>
</html>
event.js:代码
Ext.onReady(function(){
/**
* Ext 中事件分为自定义事件和浏览器事件
*/
/**
* 第一步定义Person,注册监听事件
*/
Ext.define("Person",{
extend:'Ext.util.Observable',//添加监听必须继承Observable
constructor:function(config){
this.name=config.name;
this.addEvents({
'walk':true,//监听名,是否启
'eat':true,
'sleep':true
});
this.listeners=config.listeners;
Person.superclass.constructor.call(this, config);
}
});
/**
* 给person 添加事件监听器
*/
var person=new Person({
name:'Longo',
listeners:{
walk:function(){
Ext.Msg.alert("event",person.name+" 再走啊走啊");
},
eat:function(breakfast,lunch,supper){
Ext.Msg.alert("event",person.name+" 要吃"+breakfast+","+lunch+" 和 "+supper);
},
sleep:function(time){
Ext.Msg.alert("event",person.name+" 从 "+time+" 开始睡觉");
}
}
});
Ext.get('walk').on('click',function(){
person.fireEvent('walk');
});
Ext.get('eat').on('click',function(){
person.fireEvent('eat','早餐','中餐','晚餐');
});
Ext.get('sleep').on('click',function(){
person.fireEvent('sleep',new Date());
});
});
浏览器事件
Ext.onReady(function(){
/**
* 元素的onclick事件,第一个绑定的事件会被第二个事件覆盖,
* 再Extjs你不用再担心这种事件
*/
var e=document.getElementById("walk");
e.onclick=function(){alert("handler1")};
e.onclick=function(){alert("handler2")};
/**
* 在ExtJs中,绑定的两次事件都会执行,不会发生第二次绑定覆盖掉第一次事件
*/
var te=Ext.get('walk');
te.on('click',function(){
alert("handler1");
});
te.on('click',function(){
alert("handler2");
});
});
ExtJs 学习之开篇(二) Observable 给类添加监听的更多相关文章
- extjs 学习笔记(二)
EXTJS实用开发指南 1. 要使用ExtJS 框架的页面中一般包括下面几句: <link rel="stylesheet" type="text/css" ...
- JavaScript学习总结(十二)——JavaScript编写类
在工作中经常用到JavaScript,今天总结一下JavaScript编写类的几种写法以及这几种写法的优缺点,关于JavaScript编写类的方式,在网上看到很多,而且每个人的写法都不太一样,经常看到 ...
- android菜鸟学习笔记23----ContentProvider(三)利用内置ContentProvider监听短信及查看联系人
要使用一个ContentProvider,必须要知道的是它所能匹配的Uri及其数据存储的表的结构. 首先想办法找到访问短信及联系人数据的ContentProvider能接受的Uri: 到github上 ...
- java web hello world(二)基于Servlet理解监听
java web最开始实现是通过Servlet实现,这里就来实现下,最原始的监听是如何实现的. 第一步,创建一个基本的web项目 ,参见(java web hello world(一)) 第二步,we ...
- Extjs学习笔记--(二)
1.配置实用Extjs <link href="Extjs/resources/css/ext-all.css" rel="stylesheet" /&g ...
- [转]ExtJS学习笔记(二):handler与listener的区别
原文地址:http://blog.csdn.net/smilingleo/article/details/3733177 ExtJS里handler和listener都是用来对用户的某些输入进行处理的 ...
- ExtJs 学习之开篇(-)之define
Ext.onReady(function(){ /** * test1,声明一个类,定义类中的方法 */ Ext.define("demo.Demo",{ ...
- 【C#】第3章学习要点(二)自定义类和结构
分类:C#.VS2015 创建日期:2016-06-19 使用教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.要点概述 别人提供的类都是为了简化你的工作量用的,可是 ...
- Cocos2d-x学习笔记(二)AppDelegate类详解
由源代码,可得到如下的类继承关系: 1. 在方法applicationDidFinishLaunching中,首先会调用CCDirector* pDirector = CCDirector::shar ...
随机推荐
- MYSQL单双向同步
Master:192.168.1.101 Slave :192.168.1.102 单向同步(一) 进入Master启动MYSQL [root@localhost ~]# service mysql ...
- hosts.allow和hosts.deny
/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务. 比如SSH服务,我们通常只对管理 ...
- FastFDS配置安装
先说环境: win7旗舰版,配CRT连接虚拟机,虚拟机用的vmware Player,安装的CentOS6.4版本. 1.添加用户 useradd fastdfs 这步可以不做,后面的操作用root账 ...
- Cardinal样条曲线的Javascript实现(理论篇)
首先,要对样条曲线进行插值的原因是:希望通过给定的关键帧点生成一条希望的直线或者曲线. 1.直线插值 生成一条直线,给定直线首尾的关键点P0,P1,就能确定这条直线的特性,比如y=kx+b中的斜率k和 ...
- varnish 内置函数详细说明
Subroutine列表 •vcl_recv 在请求开始时候被调用,在请求已经被接收到并且解析后调用.目的就是决定是否处理这个请求,怎么处理,使用哪个后端.vcl_recv以return结束,参数可以 ...
- Ajax学习重点总结
1.什么是AJAX AJAX=Asynchronous JavaScript and XML(异步的JavaScript和XML). AJAX是在不重新加载整个页面的情况下,后台与服务器交换数据并更新 ...
- Git简单应用(1)
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 1.Windows安装git msysgit是Windows版的Git,从https://git-for-windows. ...
- 【Mocha.js 101】钩子函数
前情提要 在上一篇文章<[Mocha.js 101]同步.异步与 Promise>中,我们学会了如何对同步方法.异步回调方法以及 Promise 进行测试. 在本篇文章中,我们将了解到 M ...
- CSS教程:div垂直居中的N种方法[转]
在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中 ...
- [转]Linux 的多线程编程的高效开发经验
Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别.不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断.本文中我们 ...