Ext.js4.2.1 事件機制
一: 簡介
Ext中的事件遵循樹狀模型,和事件相關的類主要有這麼幾個:Ext.util.Observable,Ext.lib.Event,Ext.EventManager和Ext.EventObject.
Ext使用Ext.lib.Event,Ext.EventManager和Ext.EventObject對原生瀏覽器事件進行了封裝,最後給我們用的是一套統一的跨瀏覽器的通用事件介面。
二:Ext.util.Observable
Ext.util.Observable在Ext事件模型中有舉足輕重的地位,位於Ext元件的頂端,為Ext元件提供處理事件的最基本功能。所有繼承自Ext.util.Observable類的控制元件都可以支援事件。
三:Ext.lib.Event
Ext.lib.Event是一個工具類,實際中很少直接用到這個類,只是與事件相關的那些操作最後都會歸結為對這些底層函式的呼叫。
getX(),getY(),getXY()獲得發生的事件在頁面中的座標位置。
getTarget() 返回事件的目標元素。
preventDefault() 用於取消瀏覽器當前事件所執行的預設操作,比如阻止頁面跳轉。
stopPropagation() 停止事件傳遞。
stopEvent() 相當於呼叫preventDefault()和stopPropagation()兩個函式
四:Ext.EventManager
Ext.EventManager 作為事件管理器,定義了一系列事件相關的處理函式,其中最常用的就是onDocumentReady和onWindowResize
Ext.onReady()就是Ext.EventManager.onDocumentReady()的簡寫形式,它會在頁面文件渲染完畢
五:Ext.EventObject
Ext.EventObject是對事件的封裝,它提供了豐富的工具函式,幫助我們獲得事件相關的資訊。透過Ext.EventObject幫助文件可以瞭解到,它包含的許多函式都與Ext.lib.Event中的函式功能是相同甚至同名的,如getPageX()、getPageY()、getPageXY()和getTarget()等,這些函式實際上都是透過Ext.lib.Event實現的。
Ext.EventObject對Ext.lib.Event擴充套件的部分是對滑鼠事件和按鍵事件的增強,定義了一系列按鍵,可以用來判斷某個鍵是否被按下:
Ext.get("text").on("keypress", function (e) {
if (e.getKey() == Ext.EventObject.SPACE) {
Ext.Msg.alert("提示", "你按了空格鍵!");
}
});
Ext中的事件遵循樹狀模型,和事件相關的類主要有這麼幾個:Ext.util.Observable,Ext.lib.Event,Ext.EventManager和Ext.EventObject.
Ext使用Ext.lib.Event,Ext.EventManager和Ext.EventObject對原生瀏覽器事件進行了封裝,最後給我們用的是一套統一的跨瀏覽器的通用事件介面。
二:Ext.util.Observable
Ext.util.Observable在Ext事件模型中有舉足輕重的地位,位於Ext元件的頂端,為Ext元件提供處理事件的最基本功能。所有繼承自Ext.util.Observable類的控制元件都可以支援事件。
點選(此處)摺疊或開啟
-
Ext.onReady(function() {
-
var test = Ext.get("test");
-
var test2 = Ext.get("test2");
-
//test.on("click", function() {
-
// alert("handler1");
-
//});
-
-
//test.on("click", function() {
-
// alert("handler2");
-
//});
-
-
Ext.define('People', {
-
config : {
-
name : ''
-
},
-
//extend : Ext.util.Observable,
-
mixins : {
-
observable : 'Ext.util.Observable'
-
},
-
info : function(event) {
-
return this.name + " is " + (event ? "ing" : "doing nothing");
-
},
-
constructor : function(config) {
-
var me = this;
-
me.addEvents({
-
'walk' : true,
-
'eat' : true
-
});
-
-
me.initConfig(config);
-
me.mixins.observable.constructor.call(this, config);
-
}
-
});
-
-
var people = Ext.create("People", {
-
name : "Alex"
-
});
-
-
people.on("walk", function() {
-
this.state = "walk";
-
Ext.Msg.alert("event", this.name + " is walking");
-
});
-
-
people.on("eat", function() {
-
this.state = "eat";
-
-
Ext.Msg.alert("event", this.name + " is eating");
-
});
-
-
test.on("click", function() {
-
people.fireEvent("walk");
-
});
-
-
test2.on("click", function(e) {
-
alert(this.getX()+" , "+this.getY());
-
alert(e.getTarget().value);
-
people.fireEvent("eat");
-
});
- });
三:Ext.lib.Event
Ext.lib.Event是一個工具類,實際中很少直接用到這個類,只是與事件相關的那些操作最後都會歸結為對這些底層函式的呼叫。
getX(),getY(),getXY()獲得發生的事件在頁面中的座標位置。
getTarget() 返回事件的目標元素。
preventDefault() 用於取消瀏覽器當前事件所執行的預設操作,比如阻止頁面跳轉。
stopPropagation() 停止事件傳遞。
stopEvent() 相當於呼叫preventDefault()和stopPropagation()兩個函式
四:Ext.EventManager
Ext.EventManager 作為事件管理器,定義了一系列事件相關的處理函式,其中最常用的就是onDocumentReady和onWindowResize
Ext.onReady()就是Ext.EventManager.onDocumentReady()的簡寫形式,它會在頁面文件渲染完畢
五:Ext.EventObject
Ext.EventObject是對事件的封裝,它提供了豐富的工具函式,幫助我們獲得事件相關的資訊。透過Ext.EventObject幫助文件可以瞭解到,它包含的許多函式都與Ext.lib.Event中的函式功能是相同甚至同名的,如getPageX()、getPageY()、getPageXY()和getTarget()等,這些函式實際上都是透過Ext.lib.Event實現的。
Ext.EventObject對Ext.lib.Event擴充套件的部分是對滑鼠事件和按鍵事件的增強,定義了一系列按鍵,可以用來判斷某個鍵是否被按下:
Ext.get("text").on("keypress", function (e) {
if (e.getKey() == Ext.EventObject.SPACE) {
Ext.Msg.alert("提示", "你按了空格鍵!");
}
});
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2143356/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺談JS事件機制與React事件機制JS事件React
- DOM事件機制事件
- redis事件機制Redis事件
- react事件機制React事件
- Redis的事件機制Redis事件
- View事件機制分析View事件
- JS的事件物件與事件機制JS事件物件
- JavaScript執行緒機制與事件機制JavaScript執行緒事件
- Spring事件機制詳解Spring事件
- Redis 事件機制詳解Redis事件
- JavaScript事件迴圈機制JavaScript事件
- Android事件分發機制Android事件
- JS 事件機制 Event LoopJS事件OOP
- Qt 事件機制 學習QT事件
- 【React深入】React事件機制React事件
- JavaScript 事件迴圈機制JavaScript事件
- jQuery的事件機制,事件物件介紹,外掛機制,多庫共存,each()jQuery事件物件
- Android10_原理機制系列_事件傳遞機制Android事件
- js--事件迴圈機制JS事件
- redis的事件處理機制Redis事件
- 18.spring系列- 事件機制Spring事件
- [譯]談談SpringBoot 事件機制Spring Boot事件
- Zookeeper watcher 事件機制原理剖析事件
- View事件分發機制分析View事件
- javascript事件迴圈機制EventLoopJavaScript事件OOP
- javascript之事件迴圈機制JavaScript事件
- 深入理解DOM事件機制事件
- React原始碼分析 – 事件機制React原始碼事件
- Java——事件處理機制概要Java事件
- cocos EventDispatcher事件分發機制事件
- Android View 的事件體系 -- 事件分發機制AndroidView事件
- 【執行機制】 JavaScript的事件迴圈機制總結 eventLoopJavaScript事件OOP
- 深入理解React:事件機制原理React事件
- Apache ZooKeeper - 事件監聽機制初探Apache事件
- Android 事件分發機制的理解Android事件
- 深入理解非同步事件機制非同步事件
- 事件迴圈機制的那些事事件
- Android觸控事件傳遞機制Android事件
- 深入剖析WebRTC事件機制之SigslotWeb事件