2012-08-08 286 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元素和处理器(在此视图类中)设置基本视图功能。