bootstrap-table自定义复选框样式

在使用bootstrap-table插件时发现上面的复选框还是原生样式比较丑

bootstrap-table自定义复选框样式_第1张图片

修改后的样式

bootstrap-table自定义复选框样式_第2张图片bootstrap-table自定义复选框样式_第3张图片

直接上代码

需引入样式

.bella-checkbox{
    position: relative;
}
/** 将初始的checkbox的样式改变 */
.bella-checkbox input[type="checkbox"] {
    opacity: 0; /*将初始的checkbox隐藏起来*/
}

/** 设计新的checkbox,位置 */
.bella-checkbox label:before {
    content: '';
    width: 19px;
    height: 19px;
    display: inline-block;
    border-radius: 2px;
    border: 1px solid #bbb;
    background: #fff;
}

/** 点击初始的checkbox,将新的checkbox关联起来 */
.bella-checkbox input[type="checkbox"]:checked + label:after {
    display: inline-block;
    font-family: 'Glyphicons Halflings';
    content: "\e013";
    top: 15%;
    left: 10%;
    position: absolute;
    font-size: 11px;
    line-height: 1;
    width: 16px;
    height: 16px;
    color: #333;
}

.bella-checkbox label {
    cursor: pointer;
    text-align: center;
    position: absolute;
    left: 10px;
}

 

 

 

$.initBootstrapTable("#bootstrapTable", {
       idField : "id",
       height : 500,
       url: "/user",
       columns : cols,
       onPostBody : function () {
               //layer.msg("列表加载完成");
       },

});

主要是在列表加载完成后渲染一下,关键 onPostBody

defaults.onPostBody = function () {
     //改变复选框样式
     $(selector).find("input:checkbox").each(function (i) {
         var $check = $(this);
         if ($check.attr("id") && $check.next("label")) {
            return;
         }
         var name = $check.attr("name");
         var id = name + "-" + i;
         var $label = $('');
         $check.attr("id", id).parent().addClass("bella-checkbox").append($label);
    });
    if ($.isFunction(options.onPostBody)) {
         options.onPostBody();
    }
 };
 $(selector).bootstrapTable(defaults);

下面是完整代码

/**
 * 通用方法封装
 * bootstrap-table插件拓展
 * @author zhangyaomin
 */
(function ($) {

    /**
     *
     * @param selector jQuery选择器
     * @param options
     */
    $.initBootstrapTable = function (selector, options) {

        var defaults = {
          method: "get",
          dataType: "json",             // 返回格式(*)
           columns : [],
          detailView : false,           // 显示详情模式
            pagination: true,             // 是否显示分页(*)
            pageSize: 10,                 // 每页的记录行数(*)
            pageNumber: 1,                // 初始化加载第一页,默认第一页
            pageList: [10, 25, 50],       // 可供选择的每页的行数(*)
            search: false,                 // 是否显示搜索框功能
            singleSelect: false,          // 是否禁止多选
            iconSize: 'outline',          // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
            toolbar: '#tableToolbar',     // 指定工作栏
            sidePagination: "server",     // 启用服务端分页
            showRefresh: false,            // 是否显示刷新按钮
            showColumns: true,            // 是否显示隐藏某列下拉框
            showToggle: true,             // 是否显示详细视图和列表视图的切换按钮
            cache: false,                 // 是否使用缓存
            showFooter: false,            // 是否显示列脚
            showRefresh: false,            // 是否显示刷新按钮

            queryParams: function(params) {
                return {
                    // 传递参数查询参数
                    pageNo: (params.offset / params.limit) + 1,
                    limit:   params.limit
                };
            },
            responseHandler: function (result) {
                return {
                    total : result.total, //总页数,前面的key必须为"total"
                    rows : result.data //行数据,前面的key要与之前设置的dataField的值一致.
                };
            }
        };
        defaults = $.extend(true, defaults, options);
        defaults.onPostBody = function () {
            //改变复选框样式
            $(selector).find("input:checkbox").each(function (i) {
                var $check = $(this);
                if ($check.attr("id") && $check.next("label")) {
                    return;
                }
                var name = $check.attr("name");
                var id = name + "-" + i;
                var $label = $('');
                $check.attr("id", id).parent().addClass("bella-checkbox").append($label);
            });
            if ($.isFunction(options.onPostBody)) {
                options.onPostBody();
            }
        };
        $(selector).bootstrapTable(defaults);
    }

})(jQuery);

 

 

 

 

 

 

 

你可能感兴趣的:(bootstrap)