在使用bootstrap-table插件时发现上面的复选框还是原生样式比较丑
修改后的样式
直接上代码
需引入样式
.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);