ホームページ  >  記事  >  ウェブフロントエンド  >  複数の jquery.datatable の共存、異常なチェックボックスの選択に対する迅速な解決策_javascript スキル

複数の jquery.datatable の共存、異常なチェックボックスの選択に対する迅速な解決策_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 17:10:03922ブラウズ

【問題の原因】

これは jquery.datatable コントロール自体の欠陥であるはずです。このコントロールのチェックボックス プラグインの ID はハードコーディングされているため、ページ上で複数のデータテーブルが参照されている場合、select all イベントはすべてのデータテーブルと一致し、複数のテーブルのすべてのチェックボックスが選択されます。

【解決策】

そのため、jquery.datatable コントロールを変更し、生成された各データテーブルの下のチェックボックスに異なる ID を与えることが最善です。データテーブルの ID は異なるため、データテーブルの ID をチェックボックスのプレフィックスとして使用できます。一意のIDを形成します。イベントを呼び出すには、このチェックボックスの特定の呼び出しイベントも同期し、この新しい ID に置き換える必要があります。

[ファイルを変更]

jqurey.datatable.ext.js (v0.0.1)

1. init メソッドを変更します:

コードをコピーします コードは次のとおりです。 🎜>
$("#" options.select_table).find('thead tr th:first-child')
.prepend('');
==>

$("#" options.select_table).find('thead tr th:first-child')

.prepend('');


2.subscribeAllChk メソッドの変更:
コードをコピー コードは次のとおりです:
$("#chk_all").click(function(){
==>

$("#" $.fn.datatable_ext.defaults.select_table "_chk_all").click(function(){



3.subscribeChk メソッドの変更:
コードをコピーします コードは次のとおりです:
if(checked_chk_num == curr_page_chk_num){
$( "#chk_all").attr('checked', 'checked');
}else{
} $("#chk_all").removeAttr('checked');
}

==>

if(checked_chk_num == curr_page_chk_num){

$("#" $.fn.datatable_ext.defaults.select_table "_chk_all").attr('checked', 'checked');
}else{
$("#" $.fn.datatable_ext.defaults.select_table "_chk_all").removeAttr('checked');
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。