我正在使用jQuery DataTables(http://www.datatables.net)来生成表格。我想插入某些单元格(从列中)jquery生成的html元素,它附加了一些事件。 (例如onClick)。
我在想mRender,但我发现我需要返回一个字符串而不是一个对象。
这是代码:
table.dataTable({
"aoColumns": [{
"mRender":function() {
var element=$("<div></div>").on("click",function(){
alert("do something");
});
return element;
}
},
{"sWidth": "350px"}]
});
代码无效,因为我看到的是
[对象]
我可以使用jQuery.html()
获取元素的html代码,但之后我将丢失附加到元素的事件。
有什么解决方案吗?这是DataTables中的设计缺陷还是我遗漏了什么?
答案 0 :(得分:5)
您可以通过mRender
或sDefaultContent
插入占位符元素,并在fnRowCallback
个活动期间添加实际内容和事件。像这样:
table.dataTable({
"aoColumns": [{
"sDefaultContent": '<div class="stuff"></div>'
"sWidth": "350px"
}],
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
var element = $(nRow).find("div.stuff");
// do stuff
element.on("click",function() {
alert("do something on row: " + iDisplayIndex);
});
}
});