クリックイベントを特定の量の特別な div にバインドする必要があります。どの div をバインドする必要があるかは実行時にしかわからないため、これらすべての特別な div のクラスを設定して「イベント」にバインドするだけでよいと考えていましたが、いずれかをクリックします。これらの div はすべての div をトリガーし、イベントで変数を使用しようとしましたが、これらの変数は実行時にのみ認識されるため、イベントをバインドするときに未定義であることがわかりました実行時にバックボーン内のイベントをバインドするために jQuery を使用しています。しかし、ビューを初期化するたびに、イベントはすぐに発生します
var RoomNumber = Backbone.View.extend({
el: $('#roomColumn' + this.roomNumber),
initialize: function () {
_.bindAll(this, 'render');
this.user = this.options.user;
this.roomNumber = this.options.roomNumber;
this.render();
//$('#roomNumber'+this.roomNumber).on('click', this.enterBooking());
},
render: function () {
$(this.el).append("<div class = 'roomNumber' id = 'roomNumber" + this.roomNumber + "'>" + this.roomNumber + "</div>");
},
enterBooking: function () {
var slideForm = new SlideForm({
user: this.user,
roomNumber: this.roomNumber,
state: 'book',
singleSchedule: new Schedule()
});
}
});
なぜこれらが起こるのか、誰かが親切に説明してくれますか?また、イベントを動的に生成された div にバインドするにはどうすればよいですか?
(おそらく、このようなバックボーン ビューを使用するべきではなかったことはわかっていますが、これは要件の一部です)