QA@IT

jQueryプラグインのDatatablesで、ソートした時のイベントについて

9002 PV

テーブルのソートの処理を変更したいのです。
以下のサイトを参考にしています。
http://datatables.net/reference/event/order

このサイトには以下のようなサンプルがあります。

$('#example').dataTable();

$('#example').on( 'order.dt', function () {
    // This will show: "Ordering on column 1 (asc)", for example
    var order = this.api().order();
    $('#orderInfo').html( 'Ordering on column '+order[0][0]+' ('+order[0][1]+')' );
} );

自分で、以下のようなサンプルを作成しました。

var table = $('#hogehoge_table').DataTable();
$('#hogehoge_table').on( 'order.dt', function (e,setting) {
    var order = this.api().order();
    $('#orderInfo').html( 'Ordering on column '+order[0][0]+' ('+order[0][1]+')' );
}

この時、「this.api」がundefinedとなってしまい、値が取得できません。
何が足りないのでしょうか?

回答

遅ればせながら、自己解決しているかもしれませんが
this.api()部をtableに変えてみてください。

var table = $('#hogehoge_table').DataTable();
$('#hogehoge_table').on( 'order.dt', function (e,setting) {
    //var order = this.api().order();
    var order = table.order();
    $('#orderInfo').html( 'Ordering on column '+order[0][0]+' ('+order[0][1]+')' );
}
編集 履歴 (0)
  • ああ、なるほど。先にtableを変数で宣言しているから、tableが使えるわけですね。ちょっと試してみます。 -
  • ありがとうございました!無事tableが取得できました。
    これで調査が進みます!
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。