我有一个div
由Backbone.js的视图生成。 当用户点击该div
,一类active
被添加到div
和功能addToSet
被执行。
问题:我想被触发另一个功能,当查看的div
有类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')
});
}
});