封装datatables js补发

var CONSTANT = {



    // datatables常量 

    DATA_TABLES : { 

        DEFAULT_OPTION : { // DataTables初始化选项 

            LANGUAGE : { 

                sProcessing : "处理中...", 

                sLengthMenu : "每页 _MENU_ 项", 

                sZeroRecords : "没有匹配结果", 

                sInfo : "显示_START_ 至 _END_ 项,共 _TOTAL_ 项", 

                sInfoEmpty : "显示 0 至 0 项,共 0 项", 

                sInfoFiltered : "(由 _MAX_ 项结果过滤)", 

                sInfoPostFix : "", 

                sSearch : "搜索:", 

                searchPlaceholder : "关键字搜索", 

                sUrl : "", 

                sEmptyTable : "表中数据为空", 

                sLoadingRecords : "载入中...", 

                sInfoThousands : ",", 

                oPaginate : { 

                    sFirst : "首页", 

                    sPrevious : "上页", 

                    sNext : "下页", 

                    sLast : "末页" 

                }, 

                oAria : { 

                    sSortAscending : ": 以升序排列此列", 

                    sSortDescending : ": 以降序排列此列" 

                } 

            }, 

            // 禁用自动调整列宽 

            autoWidth : false, 

            // 为奇偶行加上样式,兼容不支持CSS伪类的场合 

            stripeClasses : [ "odd", "even" ], 

            // 取消默认排序查询,否则复选框一列会出现小箭头 

            order : [], 

            // 隐藏加载提示,自行处理 

            processing : false, 

            // 启用服务器端分页 

            serverSide : true, 

            // 禁用原生搜索 

            searching : false 

        }, 

        COLUMN : { 

            // 复选框单元格 

            CHECKBOX : { 

                className: "td-checkbox", 

                orderable : false, 

                bSortable : false, 

                data : "id", 

                width : '16px', 

                render : function(data, type, row, meta) { 

                    var content = ''; 

                    return content; 

                } 

            } 

        }, 

        // 回调 

        CALLBACKS : { 

            // 表格绘制前的回调函数 

            PREDRAWCALLBACK : function(settings) { 

                if (settings.oInit.scrollX == '100%') { 

                    // 给表格添加css类,处理scrollX : true出现边框问题 

                    $(settings.nTableWrapper).addClass('dataTables_DTS'); 

                } 

            }, 

            INITCOMPLETE : function(settings, json) { 

                if (settings.oInit.scrollX == '100%' && $(settings.nTable).parent().innerWidth() - $(settings.nTable).outerWidth() > 5) { 

                    $(settings.nScrollHead).children().width('100%'); 

                    $(settings.nTHead).parent().width('100%'); 

                    $(settings.nTable).width('100%'); 

                } 

            }/*, 

            // 表格每次重绘回调函数 

            DRAWCALLBACK : function(settings) { 

            // 取消全选 

                $(":checkbox[name='keeperUserGroup-checkable']").prop('checked', false); 

                // 高亮显示当前行 

                $(settings.nTable).find("tbody tr").click(function(e) { 

                var box=$(e.target).parents('tr').find(":checkbox").is(':checked');// true 选中  false 没选中

                    if(box){

                    $(e.target).parents('tr').addClass('warning');

                    }else{

                    $(e.target).parents('tr').removeClass('warning');

                    }

                    $(e.target).parents('tr').find(":checkbox").prop('checked', !box);

                }); 

            },DRAWCALLBACKNEW : function(settings){

            // 取消全选 

                $(":checkbox[name='keeperUserGroup-checkable']").prop('checked', false); 

                // 高亮显示当前行 

                $(settings.nTable).find("tbody tr").click(function(e) { 

                var box=$(e.target).parents('tr').find(":checkbox").is(':checked');// true 选中  false 没选中

                    if(box){

                    $(e.target).parents('tr').addClass('warning');

                    }else{

                    $(e.target).parents('tr').removeClass('warning');

                    }

                    $(e.target).parents('tr').find(":checkbox").prop('checked', !box);

                }); 

            }*/,DRAWCALLBACKSINGLE : function(settings){

            /**全选反选触发事件*/

            $(settings.nTable).find(":checkbox[name='keeperUserGroup-checkable']").click(function(e){

            if($(this).prop('checked')){

            table.$('tr').addClass('warning selected');

            $(settings.nTable).find('tbody tr input:checkbox').prop('checked', true);

            }else{

            table.$('tr').removeClass('warning selected');

            $(settings.nTable).find('tbody tr input:checkbox').prop('checked', false);

            }

            });

                /**TR行事件*/

                $(settings.nTable).find("tbody tr").click(function(e) {

                //取消全选 

                $(settings.nTable).find(":checkbox[name='keeperUserGroup-checkable']").prop('checked', false);

                //获取当前tr和checkbox元素,当前已选中

                var tr = $(e.target).parents('tr');

                var checkbox = $(e.target).parents('tr').find(":checkbox");

                var checkedLen = $(settings.nTable).find("input:checkbox:checked").length;

                //当期触发事件是checkbox

                if($(e.target).is('input:checkbox')){

                tr.toggleClass('warning selected');

                return true;

                }

                //当前已选中多个只保留当前

                  if(checkedLen >= 2){

                  //激活当前行内checkbox

                    checkbox.prop('checked', !checkbox.prop('checked'));

                    tr.toggleClass('warning selected');

                }else{

                //清除非当前行内样式及checkbox

                tr.siblings().removeClass('warning selected');

                    tr.siblings().find(":checkbox").prop('checked', false);



                checkbox.prop('checked', true);

                    tr.addClass('warning selected');

                }

            });

          },DRAWCALLBACKSINGLENEW : function(settings){

          /**全选反选触发事件*/

          $(settings.nTable).find(":checkbox[name='keeperUserGroup-checkable']").click(function(e){

          if($(this).prop('checked')){

          table.$('tr').addClass('warning selected');

          $(settings.nTable).find('tbody tr input:checkbox').prop('checked', true);

          }else{

          table.$('tr').removeClass('warning selected');

          $(settings.nTable).find('tbody tr input:checkbox').prop('checked', false);

          }

          vm.setType();

          });

              /**TR行事件*/

              $(settings.nTable).find("tbody tr").click(function(e) {

              //取消全选 

              $(settings.nTable).find(":checkbox[name='keeperUserGroup-checkable']").prop('checked', false);

              //获取当前tr和checkbox元素,当前已选中

              var tr = $(e.target).parents('tr');

              var checkbox = $(e.target).parents('tr').find(":checkbox");

              var checkedLen = $(settings.nTable).find("input:checkbox:checked").length;

              //当期触发事件是checkbox

              if($(e.target).is('input:checkbox')){

              tr.toggleClass('warning selected');

              vm.setType();

              return true;

              }

              //当前已选中多个只保留当前

              if(checkedLen >= 2){

              //激活当前行内checkbox

                checkbox.prop('checked', !checkbox.prop('checked'));

                tr.toggleClass('warning selected');

            }else{

            //清除非当前行内样式及checkbox

            tr.siblings().removeClass('warning selected');

                tr.siblings().find(":checkbox").prop('checked', false);



            checkbox.prop('checked', true);

                tr.addClass('warning selected');

            }

                vm.setType(); 

          });



        },DRAWCALLBACKSINGLESCROLLX : function(settings){

          /**全选反选触发事件*/

          $(".dataTables_scrollHeadInner").find(":checkbox[name='keeperUserGroup-checkable']").click(function(e){

          if($(this).prop('checked')){

          table.$('tr').addClass('warning selected');

          $(settings.nTable).find('tbody tr input:checkbox').prop('checked', true);

          }else{

          table.$('tr').removeClass('warning selected');

          $(settings.nTable).find('tbody tr input:checkbox').prop('checked', false);

          }

          vm.setType();

          });

              /**TR行事件*/

              $(settings.nTable).find("tbody tr").click(function(e) {

              //取消全选 

              $(settings.nTable).find(":checkbox[name='keeperUserGroup-checkable']").prop('checked', false);

              //获取当前tr和checkbox元素,当前已选中

              var tr = $(e.target).parents('tr');

              var checkbox = $(e.target).parents('tr').find(":checkbox");

              var checkedLen = $(settings.nTable).find("input:checkbox:checked").length;

              //当期触发事件是checkbox

              if($(e.target).is('input:checkbox')){

              tr.toggleClass('warning selected');

              vm.setType();

              return true;

              }

              //当前已选中多个只保留当前

              if(checkedLen >= 2){

              //激活当前行内checkbox

                checkbox.prop('checked', !checkbox.prop('checked'));

                tr.toggleClass('warning selected');

            }else{

            //清除非当前行内样式及checkbox

            tr.siblings().removeClass('warning selected');

                tr.siblings().find(":checkbox").prop('checked', false);



            checkbox.prop('checked', true);

                tr.addClass('warning selected');

            }

                vm.setType(); 

          });



        }

        }, 

        // 常用render可以抽取出来,如日期时间、头像等 

        RENDER : { 

            ELLIPSIS : function(data, type, row, meta) { 

                data = data || ""; 

                return '' + data + ''; 

            } 

        } 



    } 



}; 



if ($.fn.dataTable) { 

    $.extend($.fn.dataTable.defaults, { 

        processing : true, 

        order: [], 

        paging : true, 

        searching: true, 

        language : CONSTANT.DATA_TABLES.DEFAULT_OPTION.LANGUAGE, 

        preDrawCallback : CONSTANT.DATA_TABLES.CALLBACKS.PREDRAWCALLBACK, 

        initComplete : CONSTANT.DATA_TABLES.CALLBACKS.INITCOMPLETE, 

        drawCallback : CONSTANT.DATA_TABLES.CALLBACKS.DRAWCALLBACK 

    }); 

} 

你可能感兴趣的:(封装datatables js补发)