Triggerfunktion bei Klick, wenn View eine bestimmte Klasse hat (backbone.js)
Ich habe eindiv
generiert von einer backbone.js Ansicht. Wenn der Benutzer darauf klicktdiv
, eine Klasseactive
wird dem hinzugefügtdiv
und die FunktionaddToSet
ausgeführt wird.
Problem: Ich möchte, dass beim Anzeigen eine andere Funktion ausgelöst wirddiv
hat die klasseactive
. Allerdings hat mein unten dargestellter Versuch immer zur FolgeaddToSet
Funktion, die ausgeführt wird, wenn auf sie geklickt wird.
Jetzt entferne ich'click': 'addToSet'
von demevents
Funktion, nur verlassen'click .active': 'removeFromSet'
. Klicken Sie auf diediv
verursacht nichts zu passieren! Dies liegt daran, dass der Ereignishandler den nicht auswählen kanndiv
der Ansicht selbst, nur die Elemente in ihm?
Irgendeine Idee, wie ich dieses Problem lösen kann? Vielen Dank!
JS-Code
SetView = Backbone.View.extend({
tagName: 'div',
className: 'modal_addit_set',
template: _.template( $('#tpl_modal_addit_set').html() ),
events: {
'click': 'addToSet',
'click .active': 'removeFromSet'
},
initialize: function(opts) {
this.post_id = opts.post_id;
},
render: function() {
$(this.el).html( this.template( this.model.toJSON() ) );
if(this.model.get('already_added'))
$(this.el).addClass('active');
return this;
},
addToSet: function() {
$.post('api/add_to_set', {
post_id: this.post_id,
set_id: this.model.get('id'),
user_id: $('#user_id').val()
});
},
removeFromSet: function() {
$.post('api/remove_from_set', {
post_id: this.post_id,
set_id: this.model.get('id')
});
}
});