表格选择 - tableselect

  房间1 房间2 房间3 房间4 房间5 房间6 房间7 房间8 房间9 房间10
8:00-9:00
9:00-10:00
10:00-11:00
11:00-12:00
12:00-13:00
13:00-14:00 内容测试
14:00-15:00
15:00-16:00
16:00-17:00
17:00-18:00

$("table#demo1").tableselect(function(api){
    $('#mergeCells').on('click',function(){
        var range = api.getSelectedRange();
        if(range){
            api.mergeCells(range,function($item){
                $item.removeClass('selected');
            });
        }
    });
    $('#splitCells').on('click',function(){
        var range = api.getSelectedRange();
        if(range){
            api.splitCells(range,function($item){
                $item.removeClass('selected');
            });
        }
    });
});
  场地1 场地2 场地3 场地4 场地5
8:00-9:00
9:00-10:00
10:00-11:00
11:00-12:00
12:00-13:00
13:00-14:00
14:00-15:00
15:00-16:00
16:00-17:00
17:00-18:00

限制选择范围,每2列可选

$("table#demo2").tableselect({
    'onSelecting':function(range){
        var limit_count = 2;
        var index = Math.ceil(range['from'][0]/limit_count);
        if(range['from'][0]<=range['to'][0]){
            range['to'][0] = Math.min(range['to'][0],index*limit_count);
        }else{
            range['to'][0] = Math.max(range['to'][0],index*limit_count-1);
        }
        return range;
    }
});

调用方法:

$(selector).tableselect(options,callback(api));

options参数

参数 默认值 说明
disabledCls 'disabled' 不可选中的class
selectedCls 'selected' 已选择的class
selectingCls 'selecting' 正在选择的class
direction 'default' 选择方向。default:横纵皆可;row:横;col:纵;
onSelectStart(range) function(range){ } 选中范围前
onSelectEnd(range) function(range){ } 选中范围后
onSelecting(range) function(range){ } 移动选择范围时,返回指定范围可限制用户选择

callback(api)参数

方法 说明
getSelectedCells() 获取当前已选择单元格
getSelectedRange() 获取当前已选择范围
mergeCells(range,callback) 合并单元格
splitCells(range,callback) 拆分单元格