首頁  >  文章  >  web前端  >  多個jquery.datatable共存,checkbox全選異常的快速解決方法_javascript技巧

多個jquery.datatable共存,checkbox全選異常的快速解決方法_javascript技巧

WBOY
WBOY原創
2016-05-16 17:10:03922瀏覽

【問題原因】

這個應該是 jquery.datatable 控製本身的缺陷。該控制項中的checkbox小插件的 id是寫死的,所以當 有多個datatable 引用到一個頁面中的時候,全選事件會匹配全部的datatable ,所以造成全部多個表格的 checkbox被都被選中。

【解法】

所以最好是修改jquery.datatable控件,給生成的每個datatable下的checkbox賦予不同的id,因為datatable的id是不一樣的,所以可以把datatable的id作為checkbox的前綴組成一個唯一的id 。  具體這個checkbox的呼叫事件也需要同步 替換成這個新id,進行事件的呼叫。

[修改文件]

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

1. init方法修改:

複製程式碼 程式碼如下:


程式碼如下:

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

         .prepend('         .prepend('         .prepend('         .prepend('');

程式碼如下:


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

複製程式碼


程式碼如下:

if(checked_pa​​ge_num ==== curr_num ====== "#chk_all").attr('checked', 'checked');

     }else{

      $("#chk_all").removeAttr 

 


==>

if(checked_chk_num == curr_page_chk_num){
      $("#" $.fn.datatable_ext.defaults.select_table "_chk_all").attr('checked', 'checked');
      $("#" $.fn.datatable_ext.defaults.select_table "_chk_all").removeAttr('checked');

     }
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn