ExtJs使用總結(非常詳細)

ExtJs使用總結(非常詳細),ExtJs使用總結(非常詳細),需要的朋友可以參考下
關鍵字:ExtJs
一、獲取元素(Getting Elements)
1.Ext.get
var el = Ext.get('myElementId');//獲取元素,等同于document.getElementById('myElementId');//會緩存
2. Ext.fly
var el = Ext.fly('myElementId')//不需要緩存。
注:享元模式(Flyweight Design Pattern)是一種節省內存的模式,該模式的大概原理是建立單個全體對象然后不斷反復使用它。
3.Ext.getDom
var elDom = Ext.getDom('elId'); // 依據id來查dom節點
var elDom1 = Ext.getDom(elDom); // 依據dom節點來查dom節點

二、CSS元素
4.addClass
Ext.fly('elId').addClass('myCls'); // 加入元素的'myCls'的樣式
5.radioClass
Ext.fly('elId').radioClass('myCls');//添加一個或多個className到這個元素,并移除其所有側邊(siblings)節點上的同名樣式。
6.removeClass
Ext.fly('elId').removeClass('myCls'); // 移除元素的樣式
7.toggleClass
Ext.fly('elId').toggleClass('myCls'); // 加入樣式
Ext.fly('elId').toggleClass('myCls'); // 移除樣式
Ext.fly('elId').toggleClass('myCls'); // 再加入樣式
8.hasClass
if (Ext.fly('elId').hasClass('myCls')) {//判斷是否已加上這個樣式
// 是有樣式的……
}
10.replaceClass
Ext.fly('elId').replaceClass('myClsA', 'myClsB');//替換樣式
11.getStyle
var color = Ext.fly('elId').getStyle('color');//返回該元素的統一化當前樣式和計算樣式。
var zIndx = Ext.fly('elId').getStyle('z-index');//返回該元素的統一化當前樣式和計算樣式。
12.setStyle
Ext.fly('elId').setStyle({
display : 'block',
overflow : 'hidden',
cursor : 'pointer'
});//設置元素的樣式,也可以用一個對象參數包含多個樣式。
13.getColor
Ext.fly('elId').getColor('color');//為指定的CSS屬性返回CSS顏色
14.setOpacity

Ext.fly('elId').setOpacity(.45, true);//設置元素的透明度。
15.clearOpacity
Ext.fly('elId').clearOpacity();//清除這個元素的透明度設置


三、Dom游歷
16.Ext.fly('elId').select('li:nth-child(2n)').addClass('red');
17.is 測試當前元素是否與傳入的選擇符相符一致。
復制代碼 代碼如下:

var el = Ext.get('elId');
if (el.is('p.myCls')) {
// 條件成立
}

18.findParent
定位于此節點,以此節點為起點,向外圍搜索外層的父節點,搜索條件必須符合并匹配傳入的簡易選擇符。
Ext.fly('elId').findParent('div'); // 返回dom節點
Ext.fly('elId').findParent('div', 4); // 查找4個節點
Ext.fly('elId').findParent('div', null, true); // 返回Ext.Element
19.findParentNode
定位于此節點的“父節點”,以此節點的“父節點”為起點,向外圍搜索外層的“父父”節點,搜索條件必須符合并匹配傳入的簡易選擇符。
Ext.fly('elId').findParentNode('div');
20.up
沿著DOM,向外圍搜索外層的“父父”節點,搜索條件必須符合并匹配傳入的簡易選擇符。
Ext.fly('elId').up('div');
Ext.fly('elId').up('div', 5); // 限5層的內查找
21.select
傳入一個CSS選擇符的參數,然后依據該CSS選擇符從當前元素下面,形成期待匹配子節點的集合,也就是“選擇”的操作,最后以一個Ext.CompositeElement類型的組合元素的形式返回。如果以Ext.select()調用表示從document可是搜索。
// 返回結果的CompositeElement
Ext.fly('elId').select('div:nth-child(2)');
// 返回數組
Ext.fly('elId').select('div:nth-child(2)',
true);
// 整個document都會搜索
Ext.select('div:nth-child(2)');
22.query
進行一次query的查詢,返回DOM 節點組成的數組。可選地第二參數設置為查詢的起點,如不指定則為 document。
// 返回dom節點組成的數組
Ext.query('div:nth-child(2)');
23.child
基于送入的選擇符,不限定深度進行搜索,符合的話選取單個子節點。
Ext.fly('elId').child('p.highlight'); // 返回的類型是Ext.Element
Ext.fly('elId').child('p.highlight', true); // 返回dom節點
24.down
基于該選擇符,"直接"選取單個子節點。
Ext.fly('elId').down('span'); // 返回的類型是Ext.Element
Ext.fly('elId').down('span', true); // 返回dom節點

25.parent
返回當前節點的那個父節點,可選地可送入一個期待的選擇符。
// 返回父節點,類型是Ext.Element
Ext.fly('elId').parent();
// 返回父節點,類型是html dom
Ext.fly('elId').parent("", true);
// 返回父級節點,但一定要是div的,找到就返回,類型是Ext.Element
Ext.fly('elId').parent("div");
26.next
獲取下一個側邊節點,跳過文本節點。可選地可送入一個期待的選擇符。
// 返回下一個側邊節點,類型是Ext.Element
Ext.fly('elId').next();
// 返回下一個側邊節點,類型是html dom
Ext.fly('elId').next("", true);
// 返回下一個側邊節點,但一定要是div的,找到就返回,類型是Ext.Element
Ext.fly('elId').next("div");
27.prev
獲取上一個側邊節點,跳過文本節點。可選地可送入一個期待的選擇符。
// 返回上一個側邊節點,類型是Ext.Element
Ext.fly('elId').prev();
// 返回上一個側邊節點,類型是html dom
Ext.fly('elId').prev("", true);
// 返回上一個側邊節點,但一定要是div的,找到就返回,類型是Ext.Element
Ext.fly('elId').prev("div");
28.first
獲取第一個側邊節點,跳過文本節點。可選地可送入一個期待的選擇符。
// 返回第一個側邊節點,類型是Ext.Element
Ext.fly('elId').first();
// 返回第一個側邊節點,類型是html dom
Ext.fly('elId').first("", true);
// 返回第一個側邊節點,但一定要是div的,找到就返回,類型是Ext.Element
Ext.fly('elId').first("div");
29.last
獲取最后一個側邊節點,跳過文本節點。可選地可送入一個期待的選擇符。
// 返回最后一個側邊節點,類型是Ext.Element
Ext.fly('elId').last();
// 返回最后一個側邊節點,類型是html dom
Ext.fly('elId').last("", true);
// 返回最后一個側邊節點,但一定要是div的,找到就返回,類型是Ext.Element
Ext.fly('elId').last("div");

四、DOM操控(DHTML常見的一項任務就是DOM元素的增、刪、改、查)
30.appendChild
把送入的元素歸為這個元素的子元素。
var el = Ext.get('elId1');
// 用id指定
Ext.fly('elId').appendChild('elId2');
// Ext.Element添加
Ext.fly('elId').appendChild(el);
// 選擇符組合地添加
Ext.fly('elId').appendChild(['elId2','elId3']);
// 直接添加dom節點
Ext.fly('elId').appendChild(el.dom);
// 添加CompositeElement,一組的div
Ext.fly('elId').appendChild(Ext.select('div'));
31.appendTo
把這個元素添加到送入的元素里面。
var el = Ext.get('elId1');
// 'elId'添加到'elId2'里面
Ext.fly('elId').appendTo('elId2');
Ext.fly('elId').appendTo(el); //
添加到Ext.Element el
32.insertBefore
傳入一個元素的參數,將其放置在當前元素之前的位置。
var el = Ext.get('elId1');
// dom節點在前面插入
Ext.fly('elId').insertBefore('elId2');
//Ext.Element el在前面插入
Ext.fly('elId').insertBefore(el);
33.insertAfter
傳入一個元素的參數,將其放置在當前元素之后的位置。
var el = Ext.get('elId1');
// dom節點在后面插入
Ext.fly('elId').insertAfter('elId2');
// Ext.Element el在后面插入
Ext.fly('elId').insertAfter(el);
34.insertFirst
可以是插入一個元素,也可以是創建一個元素(要創建的話請使用“DomHelper配置項對象”作為參數傳入),總之,這個元素作為當前元素的第一個子元素出現。
var el = Ext.get('elId1');
// 插入的dom節點作為第一個元素
Ext.fly('elId').insertFirst('elId2');
// 插入的Ext.Element作為第一個元素
Ext.fly('elId').insertFirst(el);
// 用DomHelper配置項創建新節點,新節點會作為第一個子元素被插入。
Ext.fly('elId').insertFirst({
tag: 'p',
cls: 'myCls',
html: 'Hi I am the new first child'
});
35.replace
用于當前這個元素替換傳入的元素。
var el = Ext.get('elId1');
// 'elId'去替換'elId2'
Ext.fly('elId').replace('elId2');
// 'elId'去替換'elId1'
Ext.fly('elId').replace(el);
36.replaceWith
用傳入的元素替換這個元素。參數可以是新元素或是要創建的DomHelper配置項對象。
var el = Ext.get('elId1');
Ext.fly('elId').replaceWith('elId2'); // 'elId2'替換掉'elId'.
Ext.fly('elId').replaceWith(el); //
'elId1'替換掉'elId'
// 用DomHelper配置項創建新節點,并用該節點換掉‘elId'。
Ext.fly('elId').replaceWith({
tag: 'p',
cls: 'myCls',
html: 'Hi I have replaced elId'
});


五、DomHelper配置項
37.createChild
傳入一個DomHelper配置項對象的參數,將其創建并加入到該元素。
var el = Ext.get('elId');
var dhConfig = {
tag: 'p',
cls: 'myCls',
html: 'Hi I have replaced elId'
};
// 創建新的節點,放到'elId'里面
el.createChild(dhConfig);
// 創建新的節點,居el第一個子元素之前
el.createChild(dhConfig, el.first());
38.wrap
創建一個新的元素,包裹在當前元素外面。
Ext.fly('elId').wrap(); // div包著elId
// 用新建的一個元素來包著elId
Ext.fly('elId').wrap({
tag: 'p',
cls: 'myCls',
html: 'Hi I have replaced elId'
});

六、Html片斷
38.insertHtml
插入HTML片斷到這個元素。至于要插入的html放在元素的哪里,你可指定beforeBegin, beforeEnd, afterBegin, afterEnd這幾種。第二個參數是插入HTML片斷,第三個參數是決定是否返回一個Ext.Element類型的DOM對象。
Ext.fly('elId').insertHtml(
'beforeBegin',
'<p><a href="anotherpage.html'>點擊我</a></p>'
); // 返回dom節點
Ext.fly('elId').insertHtml(
'beforeBegin',
'<p><a href="anotherpage.html'>點擊我</a></p>',
true
); // 返回Ext.Element
39.remove
從DOM里面移除當前元素,并從緩存中刪除。.
Ext.fly('elId').remove(); //
elId在緩存和dom里面都沒有
40.removeNode
移除document的DOM節點。如果是body節點的話會被忽略。
Ext.removeNode(node); // 從dom里面移除(HTMLElement)


七、Ajax
41.load
直接訪問Updater的Ext.Updater.update()方法(相同的參數)。參數與Ext.Updater.update()方法的一致。
Ext.fly('elId').load({url: 'serverSide.php'})
42.getUpdater
獲取這個元素的UpdateManager。
var updr = Ext.fly('elId').getUpdater();
updr.update({
url: 'http://myserver.com/index.php',
params: {
param1: "foo",
param2: "bar"
}
});

八、事件控制Event Handling
43.addListener/on
為此元素加入一個事件處理函數。on()是其簡寫方式。簡寫方式作用等價,寫代碼時更省力。
var el = Ext.get('elId');
el.on('click', function(e,t) {
// e是一個標準化的事件對象(Ext.EventObject)
// t就是點擊的目標元素,這是個Ext.Element.
// 對象指針this也指向t
});
44.removeListener/un
從這個元素上移除一個事件處理函數。un()是它的簡寫方式。
var el = Ext.get('elId');
el.un('click', this.handlerFn);
// 或
el.removeListener('click', this.handlerFn);
45.Ext.EventObject
EventObject呈現了統一各瀏覽器的這么一個事件模型,并盡量符合W3C的標準方法。
// e它不是一個標準的事件對象,而是Ext.EventObject。
function handleClick(e){
e.preventDefault();
var target = e.getTarget();
...
}
var myDiv = Ext.get('myDiv');
myDiv.on("click", handleClick);
// 或
Ext.EventManager.on('myDiv', 'click', handleClick);
Ext.EventManager.addListener('myDiv', 'click', handleClick);

九、高級事件功能
46.委托delegation
要使用事件委托的方式代替,在容器身上登記一個事件處理器,按照依附的邏輯選擇:
Ext.fly('actions').on('click, function(e,t) {
switch(t.id) {
case ''btn-edit':
// 處理特定元素的事件具體過程
break;
case 'btn-delete':
// 處理特定元素的事件具體過程
break;
case 'btn-cancel':
// 處理特定元素的事件具體過程
break;
}
});

47.委托化delegate
你在登記事件的處理器的時候可以加入配置這個選項。一個簡易選擇符,用于過濾目標元素,或是往下一層查找目標的子孫。
el.on('click', function(e,t) {
// 執行事件具體過程
}, this, {
// 對子孫'clickable'有效
delegate: '.clickable'
});
48.翻轉hover
這是一個Ext的翻轉菜單的實例:
// handles when the mouse enters the element
function enter(e,t){
t.toggleClass('red');
}
// handles when the mouse leaves the element
function leave(e,t){
t.toggleClass('red');
}
// subscribe to the hover
el.hover(over, out);
49.移除事件句柄removeAllListeners
在該元素身上移除所有已加入的偵聽器。
el.removeAllListeners();
50.是否一次性觸發single
你在登記事件的處理器的時候可以加入配置這個選項。true代表為事件觸發后加入一個下次移除本身的處理函數。
el.on('click', function(e,t) {
// 執行事件具體過程
}, this, {
single: true // 觸發一次后不會再執行事件了
});
51.緩沖buffer
你在登記事件的處理器的時候可以加入配置這個選項。若指定一個毫秒數會把該處理函數安排到Ext.util.DelayedTask延時之后才執行。如果事件在那個事件再次觸發,則原處理器句柄將不會被啟用,但是新處理器句柄會安排在其位置。
el.on('click', function(e,t) {
// 執行事件具體過程
}, this, {
buffer: 1000 // 重復響應事件以一秒為時間間隔
});
52.延時delay
你在登記事件的處理器的時候可以加入配置這個選項。制定觸發事件后處理函數延時執行的時間。
el.on('click', function(e,t) {
// 執行事件具體過程
}, this, {
// 延遲事件,響應事件后開始計時(這里一秒)
delay: 1000
});
53.目標target
你在登記事件的處理器的時候可以加入配置這個選項。如果你想另外指定另外一個目標元素,你可以在這個配置項上面設置。這可保證在事件上報階段中遇到這個元素才會執行這個處理函數。
復制代碼 代碼如下:

el.on('click', function(e,t) {
// 執行事件具體過程
}, this, {
// 遇到里頭的第一個'div'才會觸發事件
target: el.up('div')
});


十、尺寸&大小
54.getHeight
返回元素的偏移(offset)高度。
var ht = Ext.fly('elId').getHeight();
55.getWidth
返回元素的偏移(offset)寬度。
var wd = Ext.fly('elId').getWidth();
56.setHeight
設置元素的高度。
Ext.fly('elId').setHeight();
57.setWidth
設置元素的寬度。
Ext.fly('elId').setWidth();
58.getBorderWidth
返回指定邊(side(s))的padding寬度。
var bdr_wd = Ext.fly('elId').getBorderWidth('lr');
59.getPadding
可以是t, l, r, b或是任何組合。例如,傳入lr的參數會得到(l)eft padding +(r)ight padding。
var padding = Ext.fly('elId').getPadding('lr');
60.clip
保存當前的溢出(overflow),然后進行裁剪元素的溢出部分 - 使用unclip()來移除。
Ext.fly('elId').clip();
61.unclip
在調用clip()之前,返回原始的裁剪部分(溢出的)。
Ext.fly('elId').unclip();
62.isBorderBox
測試不同的CSS規則/瀏覽器以確定該元素是否使用Border Box。
if (Ext.isBorderBox) {
//
}

十一、定位

63.getX
返回元素相對于頁面坐標的X位置。元素必須是屬于DOM樹中的一部分才擁有正確的頁面坐標(display:none或未加入的elements返回false)。
var elX = Ext.fly('elId').getX()
64.getY
返回元素相對于頁面坐標的Y位置。元素必須是屬于DOM樹中的一部分才擁有正確的頁面坐標(display:none或未加入的elements返回false)。
var elY = Ext.fly('elId').getY()
65.getXY
返回元素當前頁面坐標的位置。元素必須是屬于DOM樹中的一部分才擁有正確的頁面坐標(display:none或未加入的elements返回false)。
var elXY = Ext.fly('elId').getXY() // elXY是數組
66.setX
返回元素相對于頁面坐標的X位置。元素必須是屬于DOM樹中的一部分才擁有正確的頁面坐標(display:none或未加入的elements返回false)。
Ext.fly('elId').setX(10)
67.setY
返回元素相對于頁面坐標的Y位置。元素必須是屬于DOM樹中的一部分才擁有正確的頁面坐標(display:none或未加入的elements返回false)。
Ext.fly('elId').setY(10)
68.setXY
返回元素當前頁面坐標的位置。元素必須是屬于DOM樹中的一部分才擁有正確的頁面坐標(display:none或未加入的elements返回false)。
Ext.fly('elId').setXY([20,10])
69.getOffsetsTo
返回當前元素與送入元素的距離。這兩個元素都必須是屬于DOM樹中的一部分才擁有正確的頁面坐標(display:none或未加入的elements返回false)。
var elOffsets = Ext.fly('elId').getOffsetsTo(anotherEl);
70.getLeft
獲取左邊的X坐標。
var elLeft = Ext.fly('elId').getLeft();
71.getRight
獲取元素右邊的X坐標(元素X位置 + 元素寬度)。
var elRight = Ext.fly('elId').getRight();
72.getTop
獲取頂部Y坐標。
var elTop = Ext.fly('elId').getTop();
73.getBottom
獲取元素的底部Y坐標(元素Y位置 + 元素寬度)。
var elBottom = Ext.fly('elId').getBottom();
74.setLeft
直接使用CSS樣式(代替setX()),設定元素的left位置。
Ext.fly('elId').setLeft(25)
75.setRight
設置元素CSS Right的樣式。
Ext.fly('elId').setRight(15)
76.setTop
直接使用CSS樣式(代替setY()),設定元素的top位置。
Ext.fly('elId').setTop(12)
77.setBottom
設置元素CSS Bottom的樣式。
Ext.fly('elId').setBottom(15)
78.setLocation
無論這個元素如何定位,設置其在頁面的坐標位置。元素必須是DOM樹中的一部分才擁有頁面坐標(display:none或未加入的elements會當作無效而返回false)。
Ext.fly('elId').setLocation(15,32)
79.moveTo
無論這個元素如何定位,設置其在頁面的坐標位置。元素必須是DOM樹中的一部分才擁有頁面坐標(display:none或未加入的elements會當作無效而返回false)。
Ext.fly('elId').moveTo(12,17)
80.position
初始化元素的位置。如果未傳入期待的位置,而又還沒定位的話,將會設置當前元素為相對(relative)定位。
Ext.fly('elId').position("relative")
81.clearPositioning
當文檔加載后清除位置并復位到默認。
Ext.fly('elId').clearPositioning()
Ext.fly('elId').clearPositioning("top")
82.getPositioning
返回一個包含CSS定位信息的對象。有用的技巧:連同setPostioning一起,可在更新執行之前,先做一個快照(snapshot),之后便可恢復該元素。
var pos = Ext.fly('elId').getPositioning()
83.setPositioning
由getPositioning()返回的對象去進行定位。
Ext.fly('elId').setPositioning({
left: 'static',
right: 'auto'
})
84.translatePoints
送入一個頁面坐標的參數,將其翻譯到元素的CSS left/top值。
// {left:translX, top: translY}
var points = Ext.fly('elId').translatePoints(15,18);
江苏时时彩正规吗