Extjs4.1 - Ext.util工具包詳解


一、Ext.util.CSS

概述:有效的控制樣式表,可以多台的刪除修改以及交換

主要方法:

1.createStyleSheet創建一個css樣式在head中的標簽

2.getRule根據類名得到一個CSSRule的對象

3.swapStyleSheet引入一個css樣式文件並指定ID

4.removeStyleSheet用指定的id來刪除一個樣式

5.update修改樣式表中的屬性值

代碼實現以及注釋說明:

//1.createStyleSheet(StringcssText,String id) :StyleSheet 創建一個css樣式在head中的標簽

Ext.util.CSS.createStyleSheet(".c{color:red}","red");

Ext.get("d1").addClsOnOver("c");

//2.getRule(String/Arrayselector,Boolean refreshCache)根據類名得到一個CSSRule的對象,對象可以獲取到里面指定屬性

varcssobj=Ext.util.CSS.getRule(".c",true);

alert(cssobj.style.color);

//3.swapStyleSheet(Stringid,String url) 引入一個css樣式文件並指定ID,交換樣式表,將會把此樣式表引入的數序靠前。多用於皮膚切換

vari=1;

Ext.get("b1").on("click",function(){

if(i%2==0){

Ext.util.CSS.swapStyleSheet("one","lession10/one.css");

Ext.get("d2").addClsOnOver("col");

i++;

}else{

Ext.util.CSS.swapStyleSheet("two","lession10/two.css");

Ext.get("d2").addClsOnOver("col");

i++;

}

});

//4.removeStyleSheet(Stringid) 用指定的id來刪除一個樣式

Ext.get("b2").on("click",function(){

Ext.util.CSS.removeStyleSheet("red");

});

//5.updateRule(String/Arrayselector,String property,String value) :Boolean 參數為類名、屬性名、值

Ext.get("b3").on("click",function(){

Ext.util.CSS.updateRule(".c","color","#990055");

});

二、Ext.util.ClickRepeater

概述:單機一次,如果不失去焦點。系統自動會去請求 主要用於擠房器和網絡忙的時候請等待的功能

直接實例化這個類,第一個參數為 組件的元素對象,第二個為配置對象

delay 首次單機時候的間隔時間

interval發生首次重復事件調用之后每一次事件的間隔時間

stopDefault停止這個el上的默認單機事件

handler執行的動作

//控制元素在指定時間內被單機(如果元素沒有失去焦點)

//第一次單擊馬上會觸發事件,如果不去點擊其他的元素那么3秒后會自動執行第二次

//以后會以4秒的間隔執行相應的程序

varc1=new Ext.util.ClickRepeater(Ext.get("b4"),{

delay:3000,//首次單機時候的間隔時間

interval:4000,//發生首次重復事件調用之后每一次事件的間隔時間

stopDefault:true,//停止這個el上的默認單機事件

handler:function(){

alert("單機我");

}

});

 

三、Ext.util.DelayedTask

概述:在規定的時間之后調用函數

創建對象指定一個function為參數

主要方法:delay 參數執行時間, 表示多少時間后觸發該對象的函數

cancel移除正在等待的最后一個函數

代碼:

//實例化對象,並傳入一個可執行的函數為參數

varc1=new Ext.util.DelayedTask(function(){

alert("-------");

});

Ext.get("b5").on("click",function(){

c1.delay(2000);//在2秒后調用,也可以傳入第二個參數,參數為執行函數。

c1.cancel();//移除在最后等待的事件

});

四、Ext.util.Format

格式化表示數值和日期等

主要方法:

1.ellipsis當超過位超過指定值時,用...來表示

2.capitalize將首字母變為大寫, 一般用於得到它的set和get方法的時候常用

3.date格式化輸出日期,第一個傳入日期對象, 第二個傳入格式

4.substr截取字符串操作

5.lowercase將所有大寫轉化為小寫

6.number講數值以一定的格式去輸入,因為各國的數值表示不同

7.nl2br將JS中的換行\n解析成<br>標簽

 

代碼實現:

varstr="marcio_zhang@163.com";

//1.ellipsis()參數第一為字符串,第二個為當超過位超過此值時,用...來表示

alert(Ext.util.Format.ellipsis(str,10));

//2.capitalize()將首字母變為大寫, 一般用於得到它的set和get方法的時候常用

alert(Ext.util.Format.capitalize(str));

//3.date()格式化輸出日期,第一個傳入日期對象, 第二個傳入格式

alert(Ext.util.Format.date(newDate(),"Y年-m月-d日"));

//4.substr截取字符串操作

alert(Ext.util.Format.substr(str,0,5));

//5.lowercase將所有大寫轉化為小寫

alert(Ext.util.Format.lowercase("MARICO"));

//6.number講數值以一定的格式去輸入,因為各國的數值表示不同

alert(Ext.util.Format.number(123123.123123,"0,000.00"));

//7.nl2br將JS中的換行\n解析成<br>標簽

alert(Ext.util.Format.nl2br("marico\nzhang"));

五、Ext.util.MixedCollection對象集合類

概述:可以增加對應的鍵值對,相當於java的一個Map集合,適合做緩存和靜態常量,方便管理

主要方法:

1.集合類的add(String key,Object o) 添加一個對象到集合類中,也可以在第一個參數指定的相應的key值

2.addAll(Object/Arrayobjs)方法。 增加一個數組或者一個集合類

3.clear方法 移除里面所有的對象

4.clone克隆 等於復制對象

5.判斷集合中是否有相應的對象 contains(Objecto) containsKey(String key) 返回一個boolean值

6.each(functionfn,[Object scope]) :void 遍歷這個集合類

7.從集合中得到單個的對象

get(String/Numberkey): Object 根據key得到指定的對象

first()得到集合類中的第一個對象

8.集合的有關事件 當執行add,clear,remove,replace方法的時候可以指定觸發的事件,可以on方法來指定

事件,參數一為執行什么操作,第二個是函數,函數參數第一個為這個對象的坐標,第二個為這個對象,第三個為

這個對象key值

 

代碼實現:

//1.集合類的add(String key,Object o) 添加一個對象到集合類中,也可以在第一個參數指定的相應的key值

varitem1=new Ext.util.MixedCollection();

vara={name:'a'};

varb={name:'b'};

item1.add("01",a);

item1.add("02",b);

//alert(item1);

//2.addAll(Object/Arrayobjs)方法。 增加一個數組或者一個集合類

vararr=[a,b]

varitem2=new Ext.util.MixedCollection();

item2.addAll(arr);

//alert(item2);

//3.clear方法 移除里面所有的對象

item2.clear();

//alert(item2);

//4.clone克隆 等於復制對象

varitem3=item1.clone();

//alert(item3);

/*

* 5.判斷集合中是否有相應的對象

* contains(Object o): 返回一個boolean值

* containsKey(String key):Boolean

* */

//alert(item3.contains(a));

//alert(item3.containsKey("01"));

//6.each(functionfn,[Object scope]) :void 遍歷這個集合類

item1.each(function(item){

//alert(item.name);

});

//7.從集合中得到單個的對象

//get(String/Numberkey): Object 根據key得到指定的對象

//first()得到集合類中的第一個對象

//alert(item1.get("01").name);

//alert(item1.get(1).name);

//alert(item1.first().name);

//8.集合的有關事件

//add,clear,remove,replace

item1.on("add",function(index,o,key){

alert("集合item1有了一個新的成員:"+key);

});

item1.add("03",{name:"c"});

六、Ext.util.TashRunner

概述:主要操作的為線程,可以實現線程的運行和停止,多個線程之間互不影響,與java中的多線程機制相似

1.實例化一個Ext.util.TaskRunner類的對象

2.定一個線程的對象 里面指定屬性:

run指定的為function,表示線程開啟后執行的函數

interval指定的為一個時間數,表示每隔多少事件執行run指定的函數

3.調用start方法開啟線程 傳入的一個線程的對象

4.調用stop方法停止線程,傳入的是需要停止的那個線程的對象

 

varrunner=new Ext.util.TaskRunner();

vartask={

run:function(){

Ext.getDom("input").value=Ext.util.Format.date(newDate(),"Y-m-d-s");

},

interval:1000

};

runner.start(task);

Ext.get("b6").on("click",function(){

runner.stop(task);

});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM