2

我试图准确了解 jQuery 事件何时以及如何在 Backbone.View 中绑定。如果我有看法:

var MyView = Backbone.View.extend({ events: {"click" : "handler"} });

主干会在调用 render() 时绑定点击事件吗?在附加身体?还有什么?

4

1 回答 1

2

调用初始化后绑定事件处理程序。这是源代码,注意delegateEvents方法:

var View = Backbone.View = function(options) {
    this.cid = _.uniqueId('view');
    this._configure(options || {});
    this._ensureElement();
    this.initialize.apply(this, arguments);
    this.delegateEvents();
};

然后,delegateEvents 方法具有如下 jQuery 代码:

this.$el.on(eventName, selector, method);

一个具体的例子,监听视图元素上的点击事件,并将带有加载更多类的按钮的点击委托给处理程序:

this.$el.on("click", ".load-more", function(){});
于 2013-09-24T10:54:57.107 回答