我有一个div
由backbone.js 生成的视图。当用户单击 this时,将向 中添加div
一个类并执行该函数。active
div
addToSet
问题:我希望在 Viewdiv
具有 class时触发另一个函数active
。但是,下面显示的我的尝试总是导致addToSet
函数在单击时运行。
现在,我'click': 'addToSet'
从events
函数中删除,只留下'click .active': 'removeFromSet'
. 点击div
不会导致任何事情发生!这是因为事件处理程序不能选择div
视图本身,只能选择其中的元素吗?
知道如何解决这个问题吗?谢谢!
JS代码
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')
});
}
});