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

jQuery DataTables - add jquery generated element with events to a table cell

本文关键字:添加 元素 表单 单元格 jquery DataTables 事件 jQuery      更新时间:2023-09-26

我正在使用jQuery DataTables(http://www.datatables.net)来生成一个表。我想在某些单元格(从列中)插入一个 jquery 生成的 html 元素女巫附加了一些事件。(例如点击)。

我正在考虑 mRender,但我发现我需要返回一个字符串而不是一个对象。

这是代码:

table.dataTable({
    "aoColumns": [{
        "mRender":function() {
            var element=$("<div></div>").on("click",function(){
                alert("do something");
            });
            return element;
        }
    },
    {"sWidth": "350px"}]
});

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

[对象]

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

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

您可以通过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);
        });
    }
});