div
backbone.js ビューによって生成されました。ユーザーがこれをクリックするdiv
と、クラスactive
が に追加されdiv
、関数addToSet
が実行されます。
問題:div
Viewに 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')
});
}
});