JQuery DataTables - 如何将函数应用于所有行(不仅仅是显示的前10行)

时间:2011-10-12 17:12:03

标签: jquery function datatables

我正在使用JQuery DataTables插件来显示大量数据。我要做的一件事是将'细节'列(有时它们大约是1000个字符)缩短为一个小字符串,这样行的高度都相同,更容易阅读。然后当用户点击小字符串时,它会打开一个对话框并显示完整的详细信息。

它工作得很好,但只在前10行(因为这些都是默认显示的)。一旦我展开表以显示其余行,该函数似乎不适用于那些新显示的行。每次显示的行集都被更改时,dataTables中是否有调用或选项会应用该函数?

这是dataTables调用:

    $('#dataTable').dataTable({
    "bJQueryUI": true,
    "sPaginationType": "full_numbers",
    "fnInitComplete": function(){
        $('.display_results').show();
        $('.def').click(function(){
            var msg = $(this).next().text();
            $('.messages').messageBox();//Custom Dialog box call

        });
    }
});

4 个答案:

答案 0 :(得分:2)

想出来! http://datatables.net/usage/callbacks 使用'fnDrawCallback'

    $('#dataTable').dataTable({
    "bJQueryUI": true,
    "sPaginationType": "full_numbers",
    "fnInitComplete": function(){
        $('.display_results').show();
    },
    "fnDrawCallback": function() {
        $('.def').click(function(){
            var msg = $(this).next().text();
            $('.messages').messageBox()//Custom Dialog
        });
    }
})

答案 1 :(得分:0)

我猜你可以在声明我们最近的项目中使用的“DataTable”时使用“fnDrawCallback”属性。

答案 2 :(得分:0)

最好将直播活动用于此类活动:http://datatables.net/faqs#events。理想情况下,可以修改messageBox插件以使用实时事件。

阿伦

答案 3 :(得分:0)

实际上你应该做的是:

$(".def").live('click', function() {
//your code here
});