私はある種の魔法使いを持っています。jsonからテーブルを自動生成してみます。ユーザーがテーブルの行をクリックした後、次のステップに進みたいと思います。しかし、クリックイベントで購読できません。イベントは発生しません。行クリックで購読できますか?
//table element view class
var ObjectsTableView = Backbone.View.extend({
tagName: 'tr',
id: 'table-item',
events:{
//no one works
'click tr' : 'onClick',
'click th' : 'onClick',
'click #some' : 'onClick'
},
//configure underscore template
template: _.template('<th id="some"><%= f1 %></th><th><%= f2 %></th><th><%= f3 %></th>'),
onClick: function(){
alert("click");
},
render: function(){
//use template and assign to html
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
別のビューで DOM に挿入された ObjectsTableView。DOM では次のように表示されます。
<table class="table table-striped">
<thead>
<tr>
<th>F1</th>
<th>F2</th>
<th>F3</th>
</tr>
</thead>
<tbody>
<tr id="table-item">
<th id="some">f1</th>
<th>f2</th>
<th>f3</th>
</tr>
</tbody>
</table>
ただし、テーブル行をクリックしてもイベントはスローされません