4

我正在使用 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"}]
});

代码不起作用,因为我看到渲染的是

[目的]

我可以使用获取元素的 html 代码,jQuery.html()但随后我将丢失附加到元素的事件。

有什么解决办法吗?这是 DataTables 中的设计缺陷还是我遗漏了什么?

4

1 回答 1

5

您可以通过mRenderor插入占位符元素,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);
        });
    }
});
于 2013-09-20T02:57:35.347 回答