我们正在使用 Django 框架开发一个 Web 应用程序,并且我们正在使用 Backbone.js 进行 MV 分解。我们有一个视图并在其上调用 render ,它将 div#main 替换为新内容,如下所示:
var GoalListView = Backbone.View.extend({
el: $('#main'),
template: _.template($("#swap").html()),
render: function() {
$(this.el).html(this.template());
return this;
}
});
这如我们预期的那样工作(使用模板的内容更改页面),但是在我们创建的下一个视图中,我们无法访问这些新的 DOM 元素中的任何一个。
el: $('#newId')
给我们未定义的,即使我们在我们交换的模板中有一个 id 为 newId 的元素。模板交换此时已经发生,那么为什么我们无法访问新元素?
编辑:谢谢,我同意这是一个时间问题。但是对于事件呢?
events: {
'keypress #goal-entry': 'createOnEnter'
},
那么没有选项可以在 DOM 中搜索 elem 以将事件附加到,对吗?