6

JQuery Datatable があり、削除リンクがクリックされたときに行を削除したい。最初の 10 行、つまり最初のページでは問題なく動作しています。ページネーションから別のページに移動するとき。動いていない。これが私のコードです:

$("#example tbody td.delete").click(function(event) {
                var row = $(this).closest("tr").get(0);
                oTable.fnDeleteRow( row );
    });

行の最後の td はすべて「delete」クラスです。

すべてのページまたはすべてのレコードを処理するにはどうすればよいですか?

4

3 に答える 3

17

jQuery 1.7以前を使用している場合は、後続のページが動的に追加されるため、代わりにライブイベントハンドラーを使用する必要があります。

$('#example tbody td.delete').live('click', function(event) {
    var row = $(this).closest('tr').get(0);
    oTable.fnDeleteRow( row );
});

jQuery .live()

編集:

人々はまだこの回答を使用しているようです。最新のベストプラクティスで更新するには、.live()を使用しないでください。Liveは1.7で非推奨になり、1.9で削除されました。代わりに、.on()ハンドラーを使用してください。これは、イベントを親要素にバインドし、ターゲットにする実際の要素をオプションのセレクターパラメーターとして使用することにより、委任されたイベントを処理できます。上記の例で使用するには、次のようになります。

$('#example tbody').on('click', 'td.delete', function(event) {
    var row = $(this).closest('tr').get(0);
    oTable.fnDeleteRow( row );
});
于 2011-09-28T07:45:35.583 に答える
-1

ライブ拡張が機能しない場合は、ライブ拡張プラグインを追加できます。 http://plugins.jquery.com/files/live-extension.js_4.txt

ロード時に次のページ アイテムの「クリック イベント」をバインドすることをお勧めします。ページが読み込まれるたびに、以下のコードを読み込んでください。関数「click_function_to_call」も定義します。

<script type="application/javascript">
  $("#example tbody td.delete").click(click_function_to_call);
</script>
于 2011-09-28T08:00:32.010 に答える