我试图准确理解jQuery事件在Backbone.View中何时以及如何绑定。 如果我有一个观点:
var MyView = Backbone.View.extend({
events: {"click" : "handler"}
});
主干会在调用render()时绑定click事件吗?附加身体?还有别的吗?
答案 0 :(得分:2)
调用initialize后绑定事件处理程序。这是source code,请注意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);
一个具体示例,在视图元素上侦听单击事件,并将具有load-more类的按钮的点击委托给处理程序:
this.$el.on("click", ".load-more", function(){});