在bootstrapTable中,当开启fixcolumn冻结列之后,其实就是把冻结的那几列复制出来,生成到.fixed-columns
的div里面。所以原本table里面的事件已经失效了,需要重新绑定一下。
关键代码:
define(['jquery', 'bootstrap', 'backend', 'table', 'form',], function ($, undefined, Backend, Table, Form,) {
Table.api.bindevent_orignal = Table.api.bindevent;
Table.api.bindevent = function(table){
this.bindevent_orignal(table);
var options = table.bootstrapTable('getOptions');
table.on('load-success.bs.table', function () {
if(true){
if(options.fixedColumns == true){
// 修复了fixcolumn开启下无法点击checkbox的问题
$(".fixed-columns input[name=btSelectItem]").unbind("click");
$(".fixed-columns tr td").unbind("click");
$(".fixed-columns input[name=btSelectItem]").on('click',function(){
var checked = $(this).prop('checked');
var value = $(this).data('index');
$("input[name=btSelectItem][data-index="+value+"]").each(function(){
$(this).prop('checked', checked);
$(this).trigger('click');
$(this).trigger('click');
});
});
}
}
});
}
});