2

我有这样的主干视图:

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 具有跨度与类“编辑”。我知道这不起作用,因为我正在使用数据表函数动态添加行。我正在尝试在预渲染的数据表中添加行。可能是什么解决方案。

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

4

1 回答 1

3

在你看来,几乎没有什么事情是不对的。如果你解决了这些问题,它可能会起作用。

  • 而不是el:"<table>"尝试tagName:"table"。这是为视图设置新元素的正确方法。

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

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

于 2013-01-31T12:45:21.213 回答