1

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>
4

1 に答える 1