我有这样的主干 View :
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");
}
})
我需要将点击事件附加到具有“edit”类跨度的 td。我知道这行不通,因为我正在使用数据表函数动态添加行。我正在尝试在预渲染的数据表中添加行。解决方案可能是什么。
P.S 我已经在其他 View 中渲染了一个空表。这工作正常并且数据表添加了行。但不知道如何在元素中添加点击事件。
最佳答案
在你看来,没有什么事情是有点不对劲的。如果你解决了这些问题,它可能会起作用。
而不是
el:"<table>"
尝试tagName:"table"
。这是correct way为 View 设置一个新元素。而不是
$('table').dataTable()
。尝试this.$el.dataTable()
。前者对页面中的所有表格元素执行选择,后者引用您的 View (<table>
) 元素。
只要您添加的元素在 View 的 el
范围内事件应该自动连接。如果由于某种原因不起作用,请尝试调用 this.delegateEvents()
插入新行后。
关于backbone.js - 在主干 View 中的数据表行中附加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14625288/