
208
|
第十二章
委派事件
委派事件機制,能讓設定
el
的事件處理器這項工作,變得很簡單。如果想替檢視器設
定多組事件,以及相對應的回叫函式,可以這麼寫:
var TodoView = Backbone.View.extend({
events: {
"change input[type=checkbox]" : "toggleDone",
"click .destroy" : "clear",
},
toggleDone: function(e){ /* ... */},
clear: function(e){ /* ... */}
});
用來設定 event 的雜湊物件(hash)格式是
{" 事件類型 選取項 ": " 回叫函式 "}
。「選取
項」可以不設定,如果沒有設的話,就會直接將這組事件和
el
綁在一起。如果有設定
的話,就會把事件委派(
http://api.jquery.com/delegate
)給符合選取項查詢條件的
el
子
元件。也就是說,
el
的子元件中,所有符合選取項的元件,都會和這組事件綁在一起。
委派事件機制採用的是氣泡傳播模式(event bubbling),因此就算
el
的內容有被更動,
這些事件還是會被觸發。
「回叫函式」的部分是設定一組字串,這組字串要對應到檢視器裡的某個實體函式名
稱。當檢視器的事件回叫函式被觸發時,回叫函式裡的執行環境(context)會和檢視
器的執行環境一致,而不會和觸發事件的網頁元件、或視窗的執行環境一致。這點對
我們而言很方便,因為這麼一來,就可以直接在回叫函式 ...