私はBackbone.jsを試してみて、これまでうまくやっていますが、問題があります。
ルート要素と子要素を取得したとしましょう。
ドキュメントが読み込まれると、3つの「ルート」インスタンスが作成されます。ルートインスタンスはタグを追加します。各ルートインスタンスは、1つの子インスタンスを作成します。
次に、子インスタンスにイベントをアタッチしてonclickイベントをアタッチします。
私はフィドルを作成しました:
http://jsfiddle.net/Fluxo/sEjE5/17/
var child = Backbone.View.extend({
template: _.template('<li>Item '+count+'</li>'),
events: {
'click li': function() {
alert('listitem Click Child Element');
}
},
initialize: function() {
_.bindAll('render');
this.render();
}, render: function() {
this.$el.html(this.template())
}
});
var root = Backbone.View.extend({
template: _.template('<div><h3>List</h3><p /><ul></ul><hr />'),
events: {
'click li': function() {
alert('listitem Click - Root Element');
}
},
initialize: function() {
_.bindAll('render');
this.render();
},
render: function() {
this.$el.html(this.template());
$('body').append(this.el);
var item = new child();
this.$el.find('ul').append(item.$el.html());
}
});
ルート要素で作成されたイベントは発生しますが、子要素で作成されたイベントは発生しません。
私は何か間違ったことをしていますか?