У меня есть 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. –