Backbone.js 事件连接到主干中表(datatable)视图中的所有行

Backbone.js 事件连接到主干中表(datatable)视图中的所有行,backbone.js,datatable,Backbone.js,Datatable,我有一个视图,它在使用datatable插件呈现的表中添加了一个新行。我希望每一行都附带一组特定的事件。以下是视图: var newRow=Backbone.View.extend({ el:".datatable", events:{ 'click .edit':'edit', 'click .delete':'delete' }, render: func

我有一个视图,它在使用datatable插件呈现的表中添加了一个新行。我希望每一行都附带一组特定的事件。以下是视图:

var newRow=Backbone.View.extend({

        el:".datatable",


        events:{
            'click .edit':'edit',
            'click .delete':'delete'
            },


            render: function()
            {

                data=this.model.toJSON();
                this.$el.dataTable().fnAddData([data.name,data.email,data.contact_number,'<span style="cursor:pointer" class="delete">Delete</span>']);
                return this;
            },


            edit:function(){
                alert("edit");
            },

            delete:function(){
            alert("delete");
            }
        })
var newRow=Backbone.View.extend({
el:“.datatable”,
活动:{
'单击.编辑':'编辑',
'click.delete':'delete'
},
render:function()
{
data=this.model.toJSON();
这是.el.dataTable().fnAddData([data.name,data.email,data.contact_number,'Delete']);
归还这个;
},
编辑:函数(){
警告(“编辑”);
},
删除:函数(){
警告(“删除”);
}
})

现在,当我在一行上单击delete时,它会触发所有行的事件,并且我会收到与行数相同的警报。我明白问题是什么。因为我将el作为整个表,所以它将在所有行中附加事件。解决这个问题的办法是什么?我需要使用数据表。对于简单表,我本应使用el作为“tr”,但我真的不知道如何实现我当前的愿望。

如果有人正在解决这类问题,请像我一样使用datatables中的fnAddTr插件:

var newrow=Backbone.View.extend({            

       tagName:"tr",

        events:{
            'click .edit':'edit',
            'click .delete':'delete'
            },


            render: function()
            {

            data=this.model.toJSON();

            this.$el.html('<td>'+data.name+'</td><td>'+data.email+'</td><td>'+data.contact_number+'</td><td><span class="delete">Delete</span> | <span class="edit">Edit</span></td>');
            return this;
            },


            edit:function(){
                alert("edit");
            },

            delete:function(){
            alert("delete");
            }
            });
所以这一行是键
$('table').dataTable().fnAddTr(Instance.render().el)


希望这对某人有所帮助。

感谢您分享解决方案,几天来遇到了完全相同的问题,并很快解决了问题。
var Instance=new newRow({ model:myModel});
$('table').dataTable().fnAddTr(Instance.render().el);