在骨干视图中将事件附加到数据表行中

时间:2013-01-31 12:01:06

标签: backbone.js datatable

我有一个像这样的骨干视图:

var newrow=Backbone.View.extend({

        el:"<table>",
        events:{
            'click .edit':'editrow',
            'click .delete':'deleterow'
            },


            render: function()
            {
                data=this.model.toJSON();
                $('table').dataTable().fnAddData([data.name,data.email,data.contact_number,'<span class="edit">Edit</span><span class="delete">Delete</span>']);
                return this;
            },

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

            deleterow:function(){
            alert("delete");
            }
        })

我需要使用带有“编辑”类的跨度的td附加点击事件。我知道这不起作用,因为我使用datatable函数动态添加行。我试图在预渲染的数据表中添加行。可能是什么解决方案。

P.S我已经在其他视图中渲染了一个空表。这工作正常,数据表添加行。但无法弄清楚如何在元素中添加点击事件。

1 个答案:

答案 0 :(得分:3)

你认为很少有东西有点不对劲。如果您修复它们,它可能会起作用。

  • 而不是el:"<table>"尝试tagName:"table"。这是correct way为视图设置新元素。

  • 而不是$('table').dataTable()。试试this.$el.dataTable()。前者对您页面中的所有表元素执行选择,后者引用您的视图(<table>)元素。

只要您添加的元素位于视图的el内,事件就会自动连线。如果由于某种原因它不起作用,请在插入新行后尝试调用this.delegateEvents()