我有以下视图,我正在尝试将click事件绑定到删除按钮,但它似乎没有触发任何内容。在控制台中没有出现任何错误,它似乎没有绑定“点击”事件。
span.delete元素深深地嵌套在一堆其他元素中,不确定是否重要,我已经尝试过它作为直接的子元素,但仍然没有。
var ListRow = Backbone.View.extend(
{
events:
{
'click span.delete': 'remove'
},
initialize: function()
{
_.bindAll(this, 'render', 'unrender', 'remove');
this.model.bind('remove', this.unrender);
},
render: function()
{
this.el = _.template($('#tpl-sTableList_' + key + 'Row').html());
return this;
},
unrender: function()
{
$(this.el).fadeOut();
},
remove: function()
{
this.model.destroy();
}
});
答案 0 :(得分:1)
模型上没有默认的remove
事件,只有一个删除事件来自集合,所以如果你想在模型从集合中删除时删除一个视图,那么放置它可能更好
this.collection.bind('remove', this.onRemove, this);
在ListView中的(因为我假设您正在使用基于您的示例的ListView和ListItemView),然后您的onRemove
方法将模型作为参数传递,以便您可以找到与其关联的视图。
答案 1 :(得分:0)
发现问题,原因是我只是设置了el对象,但没有渲染它,所以代替:
this.el =
应该是
$(this.el).html();
否则一切都按预期工作。