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

WBOY
リリース: 2016-05-16 17:10:03
オリジナル
916 人が閲覧しました

【問題の原因】

これは 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');
}

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート