2008年12月29日

EXT核心API詳解(一)-Ext

Ext類

addBehaviors( Object obj ) : void
對選擇的元素 應用事件偵聽器,事件名以@附加在結尾,例如
addBehaviors({
// id=foo下所有的a標籤加入click事件
'#foo a@click' : function(e, t){
// do something
},
// 用,分隔多個選擇器
'#foo a, #bar span.some-class@mouseover' : function(){
// do something
}
});


apply( Object obj, Object config, Object defaults ) : Object
從config拷貝所有的屬性到obj,如果有defaults參數,也將拷貝其屬性到obj

applyIf( Object obj, Object config ) : Object
從config拷貝所有屬性至obj(如果obj未定義相應屬性)

decode(Object obj) : String
編碼一個對象/數組或其它值為一個json格式字符串(支持對象,數組,日期,字符串)

destroy( Mixed arg1, Mixed (optional), Mixed (optional) ) : void
嘗試去移除每個傳入的對象,包括DOM,事件偵聽者,並呼叫他們的destroy方法(如果存在)


each( Array/NodeList/Mixed array, Function fn, Object scope ) : void
利用array中的每個元素迭代調用fn.直到fn返回假,調用格式fn.call(scope || array[i], array[i], i, array);


encode(String json) : Object
將一個json格式字符串反序列化為對象

escapeRe( String str ) : String
為字符串正則編碼將.在*+?^${}()|[]/\字符前加\

extend( Object subclass, Object superclass, [Object overrides] ) : void
從superclass類繼承subclass,overrides參數是要重載的方法列表,詳見override

fly( String/HTMLElement el, [String named] ) : Element
得到全局共享的一個浮動元素el,如果有多個浮動元素可以使用命名以避免潛在的衝突

get( Mixed el ) : Element
得到一個Element對象,參數可以是id或DOM節點或已存在的Element對象

getBody() : Element
得到當前文檔的body對象

getCmp( String id ) : Component
通過id得到一個Component對象


getDoc() : Element
得到當前文檔

getDom( Mixed el ) : HTMLElement
通過id或節點或Element對象返回一個DOM節點


id( [Mixed el], [String prefix] ) : String
為對象el生成一個惟一id,如果對象本身已有id,將不會被改變(可以使用前導符prefix)


isEmpty( Mixed value, [Boolean allowBlank] ) : Boolean
判斷值是否為空,null, undefined或空字符串將返回真,如果allowBlank定義為真,空字符串將不被視為空

namespace( String namespace1, String namespace2, String etc ) : void
創建一個命名空間,例
Ext.namespace('Company', 'Company.data');
Company.Widget = function() { ... }
Company.data.CustomStore = function(config) { ... }

num( Mixed value, Number defaultValue ) : Number
將value轉為數值,如果value不是合法的數值類型,將返回defaultValue,其實defaultValue並不一定要求是數值類型,只要你願意


onReady( Function fn, Object scope, boolean override ) : void
當文檔準備好了之後引發fn,發生在page的onload事件之前,並且圖片此時都還沒有載入,scope定義執有者,override定義scope是否有默認的選擇


override( Object origclass, Object overrides ) : void
利用overrides重寫origclass的方法,例
Ext.override(MyClass, {
newMethod1: function(){
// etc.
},
newMethod2: function(foo){
// etc.
}
});

query( String path, [Node root] ) : Array
通過path,在root中選擇節點數組,path可以是以下四種選擇器之一
[元素選擇器] 例:
* 任意節點
E 一個E標籤元素
E F 祖先節點為E的F節點
E > F 或 E/F 父節點為E的F節點
E + F 前一個兄弟節點為E的F節點
E ~ F 前面的兄弟節點中有E的F節點
[屬性選擇器] 例:
E[foo] 有foo屬性的E節點
E[foo=bar] 有foo屬性值為bar的E節點
E[foo^=bar] foo屬性以bar開始的E節點
E[foo$=bar] foo屬性以bar結尾的E節點
E[foo*=bar] foo屬性中有bar字符串的E節點
E[foo%=2] foo屬性能被2整除的E節點
E[foo!=bar] foo屬性值不為bar的E節點
[偽類選擇器] 例:
E:first-child E節點是父節點中第一個子節點
E:last-child E節點是父節點中最後一個子節點
E:nth-child(n) E是父節點中每n個節點
E:nth-child(odd) E是父節點中的奇數節點
E:nth-child(even) E是父節點中的偶數節點
E:only-child E是父節點中惟一的子節點
E:checked checked屬性為真的節點
E:first 子孫節點中的第一個E節點
E:last 子孫節點中的最後一個E節點
E:nth(n) 子孫節點中的第n個E節點
E:odd E:nth-child(odd)的簡寫
E:even E:nth-child(even)的簡寫
E:contains(foo) innerHTML屬性中含有foo的E節點
E:nodeValue(foo) E節點中包含一個值為foo的文本節點
E:not(S) 不匹配簡單選擇器S的E節點
E:has(S) 有能匹配簡單選擇器S的子節點的E節點
E:next(S) 下一個兄弟節匹配簡單選擇器S的E節點
E:prev(S) 前一個兄弟節匹配簡單選擇器S的E節點
type( Mixed object ) : String
判斷對象類型,如果不是下列值之一將返回false
[樣式選擇器] 例:
E{display=none} display屬性值為none的E節點
E{display^=none} display屬性值以none開始的E節點
E{display$=none} display屬性值以none結束的E節點
E{display*=none} display屬性值含有none子字串的E節點
E{display%=2} display屬性值能被2整除的E節點
E{display!=none} display屬性值不等於none的E節點


select( String/Array selector, [Boolean unique], [HTMLElement/String root] ) :CompositeElementLite/CompositeElement
在root內通過樣式選擇器或元素數組selector選擇元素或元素列表,unique指示是否只選擇惟一值

urlDecode( String string, [Boolean overwrite] ) : Object
將url格式字符串string解碼為json對象,overwrite參數指示是否不重寫已存在的對象,例
Ext.urlDecode("foo=1&bar=2"); //返回 {foo: 1, bar: 2}
Ext.urlDecode("foo=1&bar=2&bar=3&bar=4"); //返回 {foo: 1, bar: 4}.
Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", true); //返回 {foo: 1, bar: [2, 3, 4]}.

urlEncode( Object o ) : String
將json對象編碼為url格式字符串,參見urlDecode

type( Mixed object ) : String
得到object類型,如果不為以下列舉值之一則返回false
string/number/boolean/function/object/array/regexp/element/nodelist/textnode/whitespace