JQuery および Datatables コードをページに正しくロードしました。私のデータは、Datatables 初期化関数の sAjaxSource オプションからロードされます。
クリックしたときにJQueryが関数を起動できるようにするクラスとIDを持つセルにボタンをロードしています。Datatable はページネーションを使用するため、(fnInitComplete を使用して) Datatable が初期化されたら関数呼び出しとして JQuery クリック関数をロードするため、最初のページのみが機能します。
以前の問題が発生し、Datatable を初期化する前にデータを HTML にロードする必要があり、JQuery クリック関数への呼び出しはすべて機能していましたが、Ajax ソースからのデータではなく、HTML テーブル データを使用していたことに気付きました。
つまり、私の JQuery クリック関数は、AjaxSource を介してテーブルにロードされた要素に対して実行されていません。(参考までに、クリック関数はさまざまなデータをテーブルにリロードしようとしていますが、最初のリロードの後、クリック イベントがまったく機能しないため、2 番目の問題でクリック イベントがその後も実行されるのではないかと心配しています)。私のコードは以下です。
<script src="fnReloadAjax.js"></script>
<script>
$(document).ready(function() {
//Any table related events need to go in here so that it initialises post data load
function tableInit() {
$('.myButton').click(function() {
oTable.fnReloadAjax('mySource2.php');
});
}
var oTable;
oTable = $("#taskTable").dataTable({ bSort: true,
"bProcessing": true,
"sAjaxSource": 'mySource1.php',
bAutoWidth: true,
"iDisplayLength": 5, "aLengthMenu": [5, 10, 25, 50, 100], // can be removed for basic 10 items per page
"sPaginationType": "full_numbers",
"aoColumnDefs": [{ "bSortable": false, "aTargets": [-1, 0]}],
"fnInitComplete": function(oSettings, json) {
tableInit();
}
});
});
</script>