我有一个像这样的骨干视图:
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我已经在其他视图中渲染了一个空表。这工作正常,数据表添加行。但无法弄清楚如何在元素中添加点击事件。
答案 0 :(得分:3)
你认为很少有东西有点不对劲。如果您修复它们,它可能会起作用。
而不是el:"<table>"
尝试tagName:"table"
。这是correct way为视图设置新元素。
而不是$('table').dataTable()
。试试this.$el.dataTable()
。前者对您页面中的所有表元素执行选择,后者引用您的视图(<table>
)元素。
只要您添加的元素位于视图的el
内,事件就会自动连线。如果由于某种原因它不起作用,请在插入新行后尝试调用this.delegateEvents()
。