我有一个Backbone.View
,它呈现一个集合并通过鼠标单击进行过滤。我需要添加类active
到我点击的按钮,但问题是,按钮是这个视图的一部分,每当我尝试addClass
或toggleClass
它只是再次默认类呈现。这是我的观点:在鼠标点击事件上切换课程
var ResumeList = Backbone.View.extend({
events: {
'click #active': 'showActive',
'click #passed': 'showPassed'
},
initialize: function() {
this.collection = new ResumeCollection();
},
render: function (filtered) {
var self = this;
var data;
if (!filtered) {
data = this.collection.toArray();
} else {
data = filtered.toArray();
}
this.$el.html(this.template({ collection: this.collection.toJSON() });
_.each(data, function (cv) {
self.$el.append((new ResumeView({model: cv})).render().$el);
});
return this;
},
showActive: function() {
this.$('#active').toggleClass('active');
// a function that returns a new filtered collection
var filtered = this.collection.filterActive();
this.render(filtered);
}
});
但正如我已经告诉,我需要的类切换或添加只是片刻,然后视图再次渲染并设置为默认类。有什么办法可以解决这个问题吗?
'toggleElement'是因为'这uncessary。$ el.find( '#活跃')'是硬编码使'toggleActive'成为一种过度复杂的方式来使用jQuery。 –