数据表页面更改回调

时间:2012-03-02 16:25:32

标签: javascript jquery jquery-datatables

我正在使用函数'fnDrawCallback'进行页面更改。它基本上解决了我的目的。唯一的事情是我在初始化dataTable对象时必须指定该函数。有什么办法可以在初始化后完成吗?

例如: 我这样做:

$("#tableID").dataTables({'fnDrawCallBack':functionName});

我想这样做:

var oTable = $("#tableID").dataTables();
oTable.fnDrawCallback = functionName;    // or something like this

解决方案:

oTable.aoDrawCallback.push(functionObj);
var functionObj = {
   fn: funtionName
};

4 个答案:

答案 0 :(得分:19)

您可以访问DataTables的内部数据设置来操作绘制回调数组(aoDrawCallback,而不是内部的fnDrawCallback - 它是一个数组,因为可以有多个回调),或者(我会建议)你可以添加'draw '事件监听器:

var oTable = $("#tableID").dataTables();
$(oTable).bind( 'draw', functionName );

DataTables触发的事件在此处记录:http://datatables.net/docs/DataTables/1.9.0/#summary_events

答案 1 :(得分:5)

如果你的版本大于1.8,你可以用它来点击页面更改事件:

    $('#myTable').on('page', function () {...} );

希望这有帮助!

答案 2 :(得分:1)

答案 3 :(得分:1)

而不是两个单独的调用,只需在.dataTable()之前添加一个.bind(),例如以下每当发生页面更改时运行setMouseDown函数(包括呈现第一页):

$('#myTable')
    .bind('page', setMouseDown())
    .dataTable( 
    { 
        bJQueryUI: true, 
        ... Other Init Stuff Here ... 
    });