私はバックボーンに足を踏み入れたところですが、簡単に解決できる問題があると思います。クリックするとパネルが開き、閉じるとタブに戻る単純なタブである次のビューがあります。
myApp.views.Support = {
Form: Backbone.View.extend({
initialize: function () {
this.el = $('#support');
this._ensureElement();
},
render: function () {
if (this.$el.hasClass('support-panel')) {
// close panel
this.$el.empty();
this.$el.removeClass('support-panel');
this.$el.addClass('support-button');
}
else {
// open and populate panel
var template = _.template(myApp.utils.RenderTemplate('support/default'), {});
this.$el.removeClass('support-button');
this.$el.addClass('support-panel');
this.$el.html(template);
}
return this;
},
closePanel: function () {
alert('close event fired');
},
events: {
'click #SubmitFormButton': 'submitForm',
'click #CloseSupportPanel': 'closePanel'
},
submitForm: function (event) {
alert('form submitted: ' + $('#message'));
}
})
}
クリックイベントが発生するたびに「closePanel」が+2回発生することを除いて、すべて正常に機能しています。私が行方不明になっているのはある種のクリーンアップだと思いますが、何がわかりません。