?? class.extras.md.svn-base
字號:
Class: Chain {#Chain}
=====================
提供鏈式執行一組函數的工具類. 該類中的方法可以通過[Class:implement][]來實現到其他的[Class][]中.
在本框架中,已實現該工具類的類有[Fx][]和[Request][]. 比如在[Fx][]中,它被用來實現自定義的復雜動畫特效.
Chain 方法: constructor {#Chain:constructor}
----------------------------------------------
### 語法:
#### 實現到其他新建類中:
var MyClass = new Class({
Implements: Chain
});
#### 實現到已有類中:
MyClass.implement(Chain);
#### 獨立使用
var myChain = new Chain;
### 示例:
var Todo = new Class({
Implements: Chain,
initialize: function(){
this.chain.apply(this, arguments);
}
});
var myTodoList = new Todo(
function(){ alert('get groceries'); },
function(){ alert('go workout'); },
function(){ alert('code mootools documentation until eyes close involuntarily'); },
function(){ alert('sleep'); }
);
### 另參考:
- [Class][]
Chain 方法: chain {#Chain:chain}
----------------------------------
向調用鏈末端添加新的被調函數.
### 語法:
myClass.chain(fn[, fn2[, fn3[, ...]]]);
### 參數:
1. 任意數量的函數
### 返回值:
* (*object*) 當前的類實例
### 示例:
//Fx.Tween已經實現了Chain類,因為它繼承了Fx類
var myFx = new Fx.Tween('myElement', {
property: 'opacity'
});
myFx.start(1,0).chain(
//注意: "this"引用了主調對象(此處即myFx對象).
function(){ this.start(0,1); },
function(){ this.start(1,0); },
function(){ this.start(0,1); }
);
### 另參考:
- [Fx][], [Fx.Tween][]
Chain 方法: callChain {#Chain:callChain}
------------------------------------------
執行并刪除調用鏈頂端的一個被調函數(原先調用鏈上第二位函數將提升為第一位)
### 語法:
myClass.callChain([any arguments]);
### 參數:
1. 任意參數(這些參數將傳遞給當前將被調用的函數)
### 返回值:
* (*object*) 主調類實例
### 示例:
var myChain = new Chain();
myChain.chain(
function(){ alert('do dishes'); },
function(){ alert('put away clean dishes'); }
);
myChain.callChain(); //顯示 'do dishes'.
myChain.callChain(); //顯示 'put away clean dishes'.
Chain 方法: clearChain {#Chain:clearChain}
--------------------------------------------
清空調用鏈
### 語法:
myClass.clearChain();
### 返回值:
* (*object*) 類實例
### 示例:
var myFx = Fx.Tween('myElement', 'color'); //Fx.Tween繼承了Fx對Chain類的實現.
myFx.chain(function(){
while(true) {
alert("D'oh!");
}
});
myFx.clearChain(); //清空調用鏈,鏈上將無被調函數
### 另參考:
- [Fx][], [Fx.Tween][]
Class: Events {#Events}
=======================
事件相關的工具類. 該類中的方法可以通過[Class:implement][]實現到其他的[Class][]中.
比如在[Fx][]類中, 它被用于提供向Fx中添加任意多個事件的能力, 如: 'complete', 'start', 以及 'cancel'.
實現[Events](#Events)的類必須通過使用option的方式或調用addEvent方法來添加事件, 不能直接通過 .options.onEventName 的方式來進行.
### 語法:
#### 實現到新建類中:
var MyClass = new Class({ Implements: Events });
#### 實現到已有類中:
MyClass.implement(Events);
### 實現說明:
- 該類可以被實現到其他的類中以提供給目標類它的事件處理功能
- Events被設計成和[Options](#Options)類有效協作的, 當option中的屬性名以'on'開頭,并緊接大寫字母開頭的單詞時, 這個屬性將被認為是一個事件而自動進行處理(例如: 'onComplete'將被處理為'complete'事件).
### 示例:
var Widget = new Class({
Implements: Events,
initialize: function(element){
// ...
},
complete: function(){
this.fireEvent('complete');
}
});
var myWidget = new Widget();
myWidget.addEvent('complete', myFunction);
### 另參考:
- [Class][], [Options](#Options)
Events 方法: addEvent {#Events:addEvent}
------------------------------------------
向類實例的事件棧中添加一個事件
### 語法:
myClass.addEvent(type, fn[, internal]);
### 參數:
1. type - (*string*) 事件類型 (如: 'complete')
2. fn - (*function*) 事件監聽函數
3. internal - (*boolean*, 可選) 設置為true時, 可防止該事件被清除
### 返回值:
* (*object*) 類實例
### 示例:
var myFx = new Fx.Tween('element', 'opacity');
myFx.addEvent('start', myStartFunction);
Events 方法: addEvents {#Events:addEvents}
------------------------------------------
和[addEvent](#addEvent)功能類似, 區別之處在于可一次添加多個事件
### 語法:
myClass.addEvents(events);
### 參數:
1. events - (*object*) 一個鍵值對對象: 鍵代表事件名(如: 'start'), 值代表事件觸發時執行的函數
### 返回值:
* (*object*) 類實例
### 示例:
var myFx = new Fx.Tween('element', 'opacity');
myFx.addEvents({
'start': myStartFunction,
'complete': function() {
alert('Done.');
}
});
Events 方法: fireEvent {#Events:fireEvent}
--------------------------------------------
觸發指定事件類型的下所有監聽函數
### 語法:
myClass.fireEvent(type[, args[, delay]]);
### 參數:
1. type - (*string*) 事件類型 (如: 'complete')
2. args - (*mixed*, 可選) 傳遞給監聽函數的參數. 如果參數大于一個,請使用數組
3. delay - (*number*, 可選) 執行事件前的延遲時間(毫秒)(默認值為0)
### 返回值:
* (*object*) 類實例
### 示例:
var Widget = new Class({
Implements: Events,
initialize: function(arg1, arg2){
//...
this.fireEvent("initialize", [arg1, arg2], 50);
}
});
Events 方法: removeEvent {#Events:removeEvent}
------------------------------------------------
刪除指定類型事件下的指定監聽函數
### 語法:
myClass.removeEvent(type, fn);
### 參數:
1. type - (*string*) 事件類型 (如: 'complete')
2. fn - (*function*) 目標函數
### 返回值:
* (*object*) 類實例
### 備注:
- 如果監聽函數被設置了internal屬性并值為true, 則該監聽函數無法被刪除
Events 方法: removeEvents {#Events:removeEvents}
--------------------------------------------------
刪除指定類型事件下的所有監聽函數. 如果未指定事件類型,則刪除全部類型下的所有監聽函數.
### 語法:
myClass.removeEvents([type]);
### 參數:
1. type - (*string*, 可選) 事件類型 (如: 'complete'). 如果未指定,則刪除全部類型下的所有監聽函數
### 返回值:
* (*object*) 類實例
### 示例:
var myFx = new Fx.Tween('myElement', 'opacity');
myFx.removeEvents('complete');
### 備注:
- removeEvents不會刪除設置了internal為true的監聽函數. 參看[Events:removeEvent][]
Class: Options {#Options}
=========================
可選項配置相關的工具類. 該類中的方法可以通過[Class:implement][]實現到其他的[Class][]中.
用于提供自動化設置類實例的可選項.
和[Events](#Events)類協作時,當可選項屬性名以'on'開頭并且緊接大寫字母開頭的單詞時,這個屬性將被認為是一個事件而自動進行處理(例如: 'onComplete'將被處理為'complete'事件)
### 語法:
#### 實現到其他新建類中:
var MyClass = new Class({Implements: Options});
#### 實現到已有類中:
MyClass.implement(Options);
Options 方法: setOptions {#Options:setOptions}
------------------------------------------------
將類的默認可選項和參數中傳入的可選項進行合并
### 語法:
myClass.setOptions([options]);
### 參數:
1. options - (*object*, 可選) 用戶指定的可選項
### 返回值:
* (*object*) 類實例
### 示例:
var Widget = new Class({
Implements: Options,
options: {
color: '#fff',
size: {
width: 100,
height: 100
}
},
initialize: function(options){
this.setOptions(options);
}
});
var myWidget = new Widget({
color: '#f00',
size: {
width: 200
}
});
/**
* myWidget.options當前為:
* {
* color: #f00,
* size: {
* width: 200,
* height: 100
* }
* }
*/
### 備注:
- 依賴于一個類中已定義的作為默認可選項的類屬性: options
- 如果一個類實現了[Events](#Events), 則任何名稱以'on'開頭并緊接大寫字母開頭的單詞的可選項(如: 'onComplete')將變為類實例的一個事件,并限定了該可選項的值必須為一個函數
[Class]: /Class/Class
[Class:implement]: /Class/Class/#Class:implement
[Fx]: /Fx/Fx
[Fx.Tween]: /Fx/Fx.Tween
[Request]: /Request/Request
[Request.HTML]: /Request/Request.HTML
[Events:removeEvent]: /Element/Element.Event/#Element:removeEvent
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -