Backbone.js删除不触发的事件

时间:2012-05-15 22:28:57

标签: javascript backbone.js

我有以下视图,我正在尝试将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();
    }
});

2 个答案:

答案 0 :(得分:1)

模型上没有默认的remove事件,只有一个删除事件来自集合,所以如果你想在模型从集合中删除时删除一个视图,那么放置它可能更好

this.collection.bind('remove', this.onRemove, this);
在ListView中的

(因为我假设您正在使用基于您的示例的ListView和ListItemView),然后您的onRemove方法将模型作为参数传递,以便您可以找到与其关联的视图。

答案 1 :(得分:0)

发现问题,原因是我只是设置了el对象,但没有渲染它,所以代替:

this.el =

应该是

$(this.el).html();

否则一切都按预期工作。