如何为视图添加动态事件?

use*_*400 18 javascript events backbone.js

如何在Backbone.js的视图类中添加动态事件

我有一个View类

var myViewClass = Backbone.View.extend({
    events: {
        'change select': 'changeSelect',
        'click a.changeLink': 'clearSelect'
    },

    initialize: function() {
        this.delegateEvents({'click select': 'changeSelect'});
    },

    .
    .
    .        
});
Run Code Online (Sandbox Code Playgroud)

这是添加{'click select':'changeSelect'}事件,但不知何故{'click a.changeLink':'clearSelect'}并不是很神奇.

谁知道解决方案?

谢谢,罗汉

Jul*_*ien 18

Backbone自动委托视图的events属性中的事件.您正在覆盖先前委派的事件.你可以调用$(this.el).delegate(...),但你也可以这样做

this.delegateEvents(_.extend(this.events, {'click select': 'changeSelect'}));
Run Code Online (Sandbox Code Playgroud)

  • 如果你正在扩展一个视图,你实际上必须```_.clone(this.events)```如果你在原始视图中没有```changeSelect```它将会失败.棘手.```this.delegateEvents(_.extend(_.clone(this.events),{'click select':'changeSelect'}))``` (3认同)