web-dev-qa-db-ja.com

jQuery Datatables:Uncaught TypeError:未定義のプロパティ 'asSorting'を読み取れません

私はjQueryを使い始めたばかりなので、質問が単純すぎるとすみません。

私はこのようなことをやろうとしています:

_$("#send-one").html('done. ');

var tableProgress= $("<table id='table-progress'><tr><td></td></tr></table>");

$("#send-one").empty().append(tableProgress);

tableProgress.dataTable({
    "bPaginate": false,
    "bLengthChange": false,
    "bFilter": true,
    "bSort": false,
    "bInfo": false,
    "bAutoWidth": false
});
_

これはすべて jQuery ui Dialog Box 内で発生します。

。dataTable()pluggin がテーブルを見つけられないため、それが機能しないと思います jQuery $ .when を使用しようとしています。

エラーはこれです

Uncaught TypeError:undefinedのプロパティ 'asSorting'を読み取れません

必要なのは、$("#send-one").html('done. ' + tableProgress)に挿入されているテーブルで.datatableプラグインを使用することですが、.datatable()を直接使用すると、挿入と同期しない場合があります。

私も試しました:

_$("#send-one").html('done. ' + tableProgress);
$('#table-progress').dataTable();
_
10
Uder Moreira

この他のスタックオーバーフローの質問には、<thead><tbody>機能します: jqueryデータテーブル統合エラー?

あなたの両方が欠けています。

37
David Hobs

私はこれをしました、そしてそれはうまくいきます。データテーブルのaoSortingに問題があるようです。理由はわかりません。

$("#send-one").html('done. ');

var tableProgress= $("<table id='table-progress'><tr><th></th></tr><tr><td></td></tr></table>");

$("#send-one").empty().append(tableProgress);

tableProgress.dataTable( {
    "aoColumns": [
          null
        ]
});
8
Uder Moreira

DataTable columnFilterプラグインを使用している場合、これで問題が解決しました。

_fnColumnIndexを次のように変更するだけです。

function _fnColumnIndex(iColumnIndex) {
        return iColumnIndex;
}
1
Ozgur Dogan

プラグインの.jsファイルを正しくロードしてください。

http://jsfiddle.net/CdRa5/6/

var tableProgress = $('<table id="table-progress"><thead><tr><th>heading</th><th>heading</th></tr></thead><tbody><tr><td>cell</td><td>cell</td></tr><tr><td>cell</td><td>cell</td></tr></tbody></table>');
$("#send-one").empty().append(tableProgress);
tableProgress.dataTable();
0
mkutyba

非同期関数(AJAX呼び出しなど)を呼び出さないため、$.when関数はここでは意味がありません。

最後の関数が完了した後に呼び出される関数を使用すると、次のコードが機能するはずです。

var tableProgress;
tableProgress = "<table id='table-progress'><tr><td></td></tr></table>";
$("#send-one").html('done. ' + tableProgress);
$('#table-progress').dataTable();  
0
Atrox111
function someAction() {
            var tableProgress;
            tableProgress = $("<table id='table-progress'><tr><td></td></tr></table>");
            $("#send-one").append(tableProgress);
            tableProgress.dataTable();                                       
}

ドキュメントの準備ができて、テーブルを#send-oneに追加し、その上でdataTableを呼び出します。 idはjQueryオブジェクトに既に存在しているだけなので、IDを使用しても意味がありません。

0
Patrick Evans