【发布时间】:2017-06-13 13:11:04
【问题描述】:
我为表格行创建了一个视图,我想听听对此行中任何单元格的任何点击。 这就是我的实现方式:
let ListItem = Backbone.View.extend({
events: {
'click tr': 'showDetails',
'click': 'showDetails'
},
template: function() {
return "<tr><td><img src=<%= imageUrl %> /></td><td class='name'><%= firstName %></td><td><%= lastName %></td><td><%= homeTown %></td><td><button type='button' id='ddd' class='btn btn-danger'>Delete</button></td></tr>";
},
render: function() {
var oTemplate = _.template(this.template());
this.$el.html(oTemplate(this.model.toJSON()));
$('table > tbody:last-child').append(this.$el.html());
return this;
},
showDetails: function() {
alert("*****");
},
hide: function(bToHide, index) {
index++;
if (!bToHide) {
$($('tr')[index]).show();
return;
}
$($('tr')[index]).hide();
this.rendered = true;
},
openActorView: function() {
window.open('/#actor/' + window.actorsCollection.indexOf(this.model), '_self');
}
});
单击其中的行\单元格后,没有任何反应。 我听点击这个视图+点击tr,但没有任何反应。
另外,当向tr td 添加事件时,以太没有任何反应。
感谢您的帮助
【问题讨论】:
-
我认为模板中的封闭标签被视图元素替换,所以如果你检查 DOM,你很可能不会在那里找到
<tr>。尝试将视图元素指定为tr,如果您将事件哈希设置为'click td':...,它也不会受到影响 -
@vassiliskrikonis 每一行都有一个 tr 元素
-
你改成
click td了吗?
标签: javascript jquery html backbone.js