jQuery DataTables - 将带有事件的jquery生成元素添加到表格单元格

时间:2013-09-19 17:44:00

标签: javascript jquery datatables jquery-datatables

我正在使用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中的设计缺陷还是我遗漏了什么?

1 个答案:

答案 0 :(得分:5)

您可以通过mRendersDefaultContent插入占位符元素,并在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);
        });
    }
});