从无框架世界转移到 Backbone.js,我通过始终存储对它们的引用(为了提高效率)带来了“缓存”我的 jQuery 对象的做法。
var myCachedEl = $('#element');
myCachedEl.on('click', function() {
myCachedEl.html('That tickles.');
});
在 Backbone 中,这就是我缓存 jQuery 对象的方式:
var RandomView = Backbone.View.extend({
intitialize: function() {
this.$lastRoll = this.$el.find('#last-roll');
this.listenTo(this.model, 'change', this.render);
},
render: function() {
this.$lastRoll.html(this.model.get('lastRoll'));
},
events: {
'click #last-roll': function() {
this.model.roll();
}
}
});
var randomView = new RandomView({
el: '#random-view',
model: random
});
鉴于我目前的设置,我想做一些类似于...
events: {
'click this.$lastRoll': function() {
// ...
}
}
...在我的事件中,我可以将点击事件绑定到缓存元素。但是,上述语法不起作用。我怀疑可能有某种方法可以“正式”定义子元素,以便我可以使用类似于上面的语法。
问题:是否有“更好”、“更简洁”或更多“主干语义”模式来缓存我的视图的子元素,我可以/应该遵循,而不是我当前的模式?