2013-05-02 21 views
0

我会通过建议,事件都可以通过视图如下拍摄的教程:Backbone.View.extend - 事件哈希

var View = Backbone.View.extend({ 
    el: $('#element'), 
    events: {}, 
    render: function(){} 
}); 

似乎有没有与此相关的任何文件事件对象。它已被弃用或已过时?还是我找错了地方:http://backbonejs.org/

+2

http://backbonejs.org/#View-delegateEvents – nikoshr 2013-05-02 12:48:54

+0

niko。添加它作为答案,我会加上一个你。 – dewd 2013-05-02 12:52:26

回答

3

View.delegateEvents

delegateEvents delegateEvents([事件])
使用jQuery的on功能 为视图内的DOM事件提供声明回调。如果没有直接传递 事件散列,请使用this.events作为源。 活动的格式为{"event selector": "callback"}。回调可以是视图上方法的名称,也可以是直接的函数体。 省略选择器会导致事件被绑定到 视图的根元素(this.el)。默认情况下,delegateEvents为 ,因此如果您有简单的 事件哈希,您的所有DOM事件将始终已连接,您将永远不必自己调用此函数。

events属性也可以定义为一个函数,该函数返回一个 事件散列,以便更容易以编程方式定义事件, 以及从父视图继承它们。

使用delegateEvents与使用jQuery在渲染期间将事件绑定到子元素的手动方法 相比,提供了许多优势。所有 附加的回调被绑定到视图之前被切换到 jQuery,所以当调用回调时,这继续引用 的视图对象。当delegateEvents再次运行时,可能会使用 不同的事件散列,所有回调将被删除并重新授权 - 对于需要在不同 模式下行为不同的视图很有用。