在JavaScript中,變量可以將參考(即編程的東西「引用」)保存到DOM的某個元素,該元素只是一個Javascript對象。骨幹確保對於一個視圖來說,至少存在這個元素。舉例來說,在jQuery的,當你指的是第三項列表:
var item3 = $('ul li').eq(2);
(這是一個零偏移列表中,第一項爲索引0,第三索引2),你現在可以從「項目三」文本更改爲「項目三點一四一五九」與普通的jQuery的DOM操縱:
item3.text("Item three point one four one five nine");
即使該列表中的項目沒有任何特定的類或ID屬性。
甲骨幹視圖的el
字段包含一個恆定參考其中該視圖使得其所有的東西的父元素。 Backbone使用jQuery delegate
事件管理器將通用事件處理程序附加到該常量引用。每當在DOM元素或其任何子元素中發生事件時,委託會捕獲該事件,並引用創建該事件的父el
中的特定DOM對象,並且骨幹使用一些相當標準的jQuery魔術將其映射到視圖中的事件處理程序。
這的確是非常酷的東西。
我要補充的是,el
參考的「常量」 -ness是,呃,值得商榷。如果您將視圖邏輯附加到現有的HTML元素,則您在視圖的initialize()
中確實分配了el
一次。 Javascript並不強制任何恆定性的概念,但是如果你確定自己知道自己在做什麼,那麼你只應該直接指定el
(即this.el = something()
)。
將此添加爲您的答案本身的編輯。 – Mrchief
這太棒了,非常感謝你! – cmpolis