Ich habe eine , die eine Sammlung rendert und filtert es per Mausklick. Ich muss Klasse active
zu der Schaltfläche hinzufügen, auf die ich klicke, aber das Problem ist, dass Schaltflächen der Teil dieser Ansicht sind, und wenn ich versuche, addClass
oder toggleClass
es nur wieder mit Standardklasse rendert. Hier ist meine Ansicht:Toggle-Klasse bei Mausklick Ereignis
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);
}
});
Aber wie ich schon gesagt habe, die Klasse muss ich umgeschaltet wird oder nur für einen Moment gegeben, dann wird die Ansicht gerendert wieder und es wird auf die Standardklasse. Gibt es einen Weg, damit umzugehen?
'toggleElement' ist uncessary seit' dies. $ El.find ('# aktiv') 'ist hartcodiert macht 'toggleActive' zu kompliziert, um jQuery zu verwenden. –