ExtJs—— Ext类

 首先说说Ext类是个啥玩意儿~。这个东西本质上说就是个工具类,而且是单例且不可直接创建的。里面的东西都是当做静态方法直接调用的。这个东西比较好 用,特别是在判断浏览器版本啊、获取某些页面元素之类的,都是非常非常实用的方法。熟练应用这个类,在ExtJs的使用中是非常必要的。

公共属性


BLANK_IMAGE_URL : String。这个是与CSS背景一起创建内联图标的一个1x1大小的透明GIF图像。默认是http://extjs.com/s.gif,记得在开发的时候显示的将这个类改成resources目录下面得s.gif,不然每次都要访问网络,很不爽。

SSL_SECURE_URL : String。

emptyFn : Function,一个可重用的空函数。
enableGarbageCollector : Boolean ,如果是true则自动周期性的清空孤立的Ext.Element,默认是true

enableListenerCollection : Boolean,如果是true则在自动清空缓存中的元素后移除相应的监听器。默认是false,这个只有在enableGarbageCollector为true的时候起作用。

isAir,isChrome,isGecko,isGecko,isGecko2,isGecko3,isIE,isIE6,isIE7,isIE8,isLinux,isMac,isOpera,isSafari,isSafari2,isSafari3,isWindows. 以上这些,不需要特别说明了,都是判断平台或者浏览器的,都是boolean型。

isBorderBox ,如果是true则被检测的浏览器是运行在非严格模式(non-strict mode)下的IE
isReady ,当文档完全初始化并且准备好工作的时候,为true
isSecure ,如果当前页面运行在SSL下位true
isStrict ,如果浏览器处于严格模式(标准兼容的)情况下,而不是在标准和非标准都兼容的情况下,这个值为true。

useShims : Boolean。默认情况下Ext会智能决定是否填充浮动元素,如果你用flash那么这个就需要设置为true

公共方法


addBehaviors( Object obj ) : void ,当文档就绪的时候,通过选择符为指定的元素添加事件监听器。事件名字通过@后缀来指明,例如:
Ext.addBehaviors({
// 在所有id为foo的练级上添加单击处理函数。
'#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,用来针对拷贝的属性提供默认值的对象。返回的是拷贝后的对象。
applyIf( Object obj, Object config ) : Object ,跟上面一样,不过只是在obj中没有config中的属性时,才把缺失的属性拷贝过去。

decode( String json ) : Object ,Shorthand for Ext.util.JSON.decode的简写,把JSON字符串解析为一个对象。如果字符串不正确,那么就跑出SyntaxError

destroy( Mixed arg1, [Mixed arg2], [Mixed etc...] ) : void ,变参函数,销毁传入参数中的监听器、从DOM中删除、并且调用其自身的销毁方法。一般来说是针对Ext.Element或Ext.Component。而且任何Ext.Observable的子类也可以。

each( Array/NodeList/Mixed array, Function fn, Object scope ) : void , 对参数中array的每个元素调用fn,array是个数组。如果fn返回false,那么就停止迭代。如果array传进来的不是个数组,那么fn就调 用一次。scope的东西,前面讲Function类的时候说过了。另外,fn的参数有三个(Object item,Number index,Array allItems)。第一个是当前迭代到的对象,第二个是对象的下标,第三个是当前的数组。

encode( Mixed o ) : String, 跟decode相反,是把一个对象啊、数组啊之类的转化为一个JSON字符串。

escapeRe( String str ) : String ,将传入的字符转换为正则表达式中可用的字符串。

extend( Function subclass, Function superclass, [Object overrides] ) : Function , 这个函数就是让一个类继承另外一个类。我们知道JS中类的实现是函数,所以subclass(子类)和superclass(父类)都是函数对象。后面的 overrides是个对象,里面是子类要具有的成员或者是可以覆盖父类的成员(成员变量和方法)。看例子:MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
constructor: function(config) {
// Your preprocessing here
MyGridPanel.superclass.constructor.apply(this, arguments);
// Your postprocessing here
},

yourMethod: function() {
// etc.
}
});

fly( String/HTMLElement el, [String named] ) : Element 。Ext有个全局的享元变量,使用fly方法时,实际上是将el的引用存入到这个全局的享元变量里面。看下面的代码:
var el = Ext.fly('foo');
Ext.fly('bar').frame();
el.addClass('error');
frame是闪亮一下的函数,addClass是给当前的元素添加一个CSS。这里面error是个加成红色字体的类。上面的代码会有什么效果呢?是 bar元素高亮,然后foo元素变红么?不是!是bar元素,高亮,然后马上变红!因为fly的是把到一个对象的引用直接存入到全局享元变量中,所以很自 然的,当fly('bar')的时候,那个全局变量已经被替换为bar这个id所指向的元素了。所以后来都是针对bar进行的操作。而get方法则相反。

get( Mixed el ) : Element ,直接获取el所指定的元素。el是节点的id,DOM节点或者已存在的Element。每次取得时候都是一个不同的副本。看代码,对比上面fly的代码效果。
var el1 = Ext.get('foo');
var el2 = Ext.get('bar');
el2.frame();
el1.addClass('error');
get方法取得的是到对象的直接索引,而没有使用全局享元变量,所以,el1和el2完全是不同的存储到两个元素的分别的索引。这样效果是bar元素高亮一下,foo元素文字变红。

getBody() : Ext.Element ,把当前文档的body封装为Ext.Element,然后返回。

getCmp( String id ) : Ext.Component ,是Ext组件管理器的方法之一,传入Ext组件的id返回这个组件。

getDoc() : Ext.Element ,把当前的HTMl document对象当成Ext.Element返回来。

getDom( Mixed el ) : HTMLElement ,根据传入的字符串(id),dom节点或Ext.Element获取其对应的DOM节点。

id( [Mixed el], [String prefix] ) : String ,为指定的元素生成id,后面的参数是生成id的前缀,默认是ext-gen

isArray( Object The ) : Boolean ,判断对象是否是数组。

isDate( Object The ) : Boolean ,判断对象是否是日期。

isEmpty( Mixed value, [Boolean allowBlank] ) : Boolean ,检测value中的值是否是空的,默认情况下是空就返回true,否则就是false。后面的参数是指明,是否允许value为空。如果是true,则无论value空还是非空,函数都返回false(即把value当成非空)。

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中的值是否是数字,不是的话,返回defaultValue中的值(数字)。

onReady( Function fn, Object scope, [boolean options] ) : void ,ExtJs最终的方法之一!当文档就绪的时候(在onload和图像加载完毕之前)。fn是要调用的方法,scope是上下文范围,一般是document,options是对象,里面包含了很多boolean值,包含了标准addListener选项。

override( Object origclass, Object overrides ) : void ,向一个类的原型添加一组函数,会覆盖任何重名的方法。origclass是原始的类名,后面的对象时方法列表:
Ext.override(MyClass, {
newMethod1: function(){
// etc.
},
newMethod2: function(foo){
// etc.
}
});

query( String path, [Node root] ) : Array ,是DomQuery类的一个方法,通过CSS或者XPath选择符选择一组DOM节点。root是查询的根,默认是document

reg( String xtype, Constructor cls ) : void ,为控件注册一个类型,前面是控件的类型名字,后面是控件本身。这个方法后面看控件的时候会有说明。

removeNode( HTMLElement node ) : void ,从DOM中删除指定的节点,如果是body节点的话,就会被忽略。

select( String/Array selector, [Boolean unique], [HTMLElement/String root] ) : CompositeElementLite/CompositeElement , 根据传进来的CSS选择符选择元素,并使它们起效。第一个参数是选择符的名字或者名字的数组。第二个参数则说明是否要为每个元素创建独一无二的Ext.Element,默认的情况是使用共享的对象。第三个root是选择查询的根元素,或者是根元素的id。

type( Mixed object ) : String ,查看参数的类型,如果参数是个null或者undefined,就返回false,否则返回的是其类型。主要的类型有:
string
number
boolean
date
function
object
array
regexp
element
nodelist
textnode
whitespace

urlDecode( String string, [Boolean overwrite] ) : Object
urlEncode( Object o ) : String

以上二者的作用是相反的,第一个是将URL中的参数转化为一个JSON对象,而后者是将JSON对象转化为URL。前者的overwrite是当string中存在重名的属性时,用后者覆盖前者。


value( Mixed value, Mixed defaultValue, [Boolean allowBlank] ) : Mixed , 一个非常有用的函数,判断参数中的value是否是非空(不是null,不是undefined,不是空字符串),如果是空的话,就返回 defaultValue的值。后面的参数是指明是否允许value为空字符串,默认是false。如果允许为空,那么当value为空的时候,就不会返 回defaulValue中的值了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值