ホームページ  >  記事  >  ウェブフロントエンド  >  複数のデータテーブルが共存すると、複数のテーブルのチェックボックスが選択されます。

複数のデータテーブルが共存すると、複数のテーブルのチェックボックスが選択されます。

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

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

[解決策]
したがって、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('チェック済み', 'チェック済み')
}else{
$("# chk_all").removeAttr('checked' );
}
==>
if(checked_chk_num == curr_page_chk_num){
$("#" $.fn.datatable_ext.defaults.select_table "_chk_all").attr('チェック済み ', 'チェック済み');
}else{
$("#" $.fn.datatable_ext.defaults.select_table "_chk_all").removeAttr('チェック済み') ;
}

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