天天看點

EXT核心API詳解(五)-Ext.EventManager/EventObject/CompositeElement/CompositeElementLite

Ext.EventManager

事件管理者中的大部分方法都在Ext中有定義,主要用于事件管理

addListener( String/HTMLElement el, String eventName, Function handler,

on( String/HTMLElement el, String eventName, Function handler, [Object scope], [Object options] ) : void

onDocumentReady( Function fn, [Object scope], [boolean options] ) : void

removeListener( String/HTMLElement el, String eventName, Function fn ) :

un( String/HTMLElement el, String eventName, Function fn ) : Boolean

參見Ext

onWindowResize( Function fn, Object scope, boolean options ) : void

視窗大小變更時觸發

onTextResize( Function fn, Object scope, boolean options ) : void

活動文本尺寸變更時觸發

Ext.EventObject

這兩個類都定義在EventManager.js中,分開是為了邏輯上更清晰吧,這個類主要用于描述事件本身,一般用做事件處理方法的參數

另外這個害定義了一些鍵值常量,比ascii碼好記

function handleClick(e){ // 這兒的e就是一個EventObject對象

    e.preventDefault();

    var target = e.getTarget();

    ...

 }

 var myDiv = Ext.get("myDiv");

 myDiv.on("click", handleClick);

 //or

 Ext.EventManager.on("myDiv", 'click', handleClick);

 Ext.EventManager.addListener("myDiv", 'click', handleClick);

getCharCode() : Number

getKey() : Number

在非webkit|khtml類型網頁中這兩個方法是一樣的,得到按鍵的值

getPageX() : Number

getPageY() : Number

getXY() : Array

得到事件坐标

getRelatedTarget() : HTMLElement

得到關聯目标?我總是得到null

getTarget( [String selector], [Number/Mixed maxDepth], [Boolean returnEl] ) :

如果沒有定義selector則直接傳回target屬性,如果定義了selector,則利用selector尋找祖先節點

getTime() : Number

得到事件發生的時間?

getWheelDelta() : Number

應該是個過時的方法,反正在ie和火狐下都不知道做什麼用的,原意應該是得到滑鼠的按鍵資訊?

hasModifier() : Boolean

事件發生時是否同時按下了ctrl/alt/shift鍵之一?

preventDefault() : void

阻止浏覽器的預設事件?

stopEvent() : void

preventDefault+stopPropagation

stopPropagation() : void

阻止事件冒泡

within( Mixed el, [Boolean related] ) : Boolean

如果事件的目标是el或者它的子節點将傳回真

Ext.CompositeElement類

基礎的複合元素類,為容器中每個元素建立一個Ext.Element對象

雖然不是繼承自Ext.Element,但事實上它幾乎支援Element類的所有方法

例:

var els = Ext.select("#some-el div.some-class", true);

els.setWidth(100);

add( String/Array els ) : CompositeElement

添加 css選擇器els比對的元素 或 元素組成的數組 到目前對象

clear() : void

清除所有元素

contains() : Boolean

應該是contains(Mixed el):Boolean,目前複合元素中是否含有el

each( Function fn, [Object scope] ) : CompositeElement

通過el,this,index參數為每個元素調用fn

fill( String/Array els ) : CompositeElement

clear()& add(els)

filter( String selector ) : CompositeElement

過濾

first() : Ext.Element

第一個元素

getCount() : Number

//元素的數量

indexOf() : Boolean

同contains一樣應該有個Mixed參數

item( Number index ) : Ext.Element

第index個元素

last() : Ext.Element

最後一個元素

removeElement( Mixed el, [Boolean removeDom] ) : CompositeElement

删除el元素

replaceElement( Mixed el, Mixed replacement, [Boolean domReplace] ) : CompositeElement

替換

Ext.CompositeElementLite

由Ext.CompositeElement繼承而來,重寫了一些方法,但沒看出與父類有什麼不同

addElements /invoke /item /addListener /each /indexOf /replaceElement

繼續閱讀