2012-08-08 515 views
0

我一直在經歷的骨幹JS官方文檔,但我似乎無法找到這個答案,下面是從他們的網站骨幹JS事件結合

var DocumentRow = Backbone.View.extend({ 

    tagName: "li", 

    className: "document-row", 

    events: { 
    "click .icon":   "open", 
    "click .button.edit": "openEditDialog", 
    "click .button.delete": "destroy", 
    "click .list1 .item1" : "open", 
}, 

    render: function() { 
    ... 
} 

}); 

片斷什麼,我不理解是事件:部分 所以它是什麼意思?

有人可以解釋以下純英文或指出其中DOC我能找到

"click .icon":   "open", 
    "click .button.edit": "openEditDialog", 
    "click .button.delete": "destroy", 
    "click .list1 .item1" : "open", 

感謝

回答

2

事件部分字面上代表將jQuery(或者你使用任何):

「點擊.icon」: 「打開」

結合的click事件在類別爲icon的任何元素上,作用範圍爲您的視圖的el,並將調用open函數。

jQuery中說:

$(el).on("click", ".icon", open) 
0

它基本上是將您的DOM事件到您的視圖的方法。

基於這樣的事情...

var DocumentRow = Backbone.View.extend({ 

    tagName: "li", 

    className: "document-row", 

    events: { 
     "click .icon": "open", 
     "click button.edit": "openEditDialog", 
     "click button.delete": "destroy", 
     "click .open": "open", 
    }, 

    open: function() { 
     // The open something code here 
    }, 
    openEditDialogue: function() { 
     // Code to open edit dialogue 
     var editDialogue = new EditDialogueView(); // etc. 
    }, 
    destroy: function() { 
     this.model.destroy(); 
    } 

... 

你查看El可能是這個樣子。

<li class="document-row"> 
    <div class="list1"> 
     <img src="someSRC" class="icon" /> 
     <button class="edit">EDIT</button> 
     <button class="delete">DELETE</button> 
     <button class="open">OPEN</button> 
    </div> 
</li> 

它不必看起來像這樣,但我只是基於事件聲明重新創建DOM。

用簡單的英語,基本上這是什麼意思是:

如果我點擊與類圖標的元素,運行open()方法。 如果我點擊類編輯按鈕元素,運行openEditDialogue()方法。 如果我點擊刪除類的按鈕元素,運行銷燬方法。 如果我點擊打開類的元素,運行open()方法。因此,基本上通過創建該事件:{}對象並使用事件規則填充它,將監聽器附加到的DOM元素和處理器(在此視圖類中)設置基本視圖功能。