web-dev-qa-db-ja.com

データテーブルページ変更コールバック

ページの変更に関数「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
};
21

DataTablesの内部データ設定にアクセスして、描画コールバック配列を操作できます(内部ではfnDrawCallbackではなく、aoDrawCallback-複数のコールバックが存在する可能性があるため、その配列)、または(そして私が提案することですが)「描画」イベントリスナーを追加できます。 :

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

DataTablesによって発生したイベントは、次のドキュメントに記載されています。 http://datatables.net/docs/DataTables/1.9.0/#summary_events

19
Allan Jardine

1.8より大きいバージョンがある場合、これを使用してページ変更イベントをヒットできます。

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

お役に立てれば!

5
streetlight

2つの個別の呼び出しではなく、.dataTable()の前に.bind()を追加するだけです。たとえば、次のように、ページの変更が発生すると(最初のページのレンダリングを含む)setMouseDown関数を実行します。

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