$.fn.scheduler - jQuery 时间选择插件

拖拽选择日间,单击标题可全选

    $('#test1').scheduler({
      data: {1:[1,2,3,4]},
      onRender: function () {
        log('已初始化');
      },
      onDragStart: function (d) {
        log('Drag Start');
      },
      onDragMove: function (d) {
        log('Drag Move');
      },
      onDragEnd: function (d) {
        log('Drag End');
      },
      onSelect: function (d) {
        log('已选择');
      }
    });
    

配置项

locale {String}

语言环境,可选值 'en'、'cn',可扩展

默认值:'en'

$('#test2').scheduler({locale: 'en'});

accuracy {Integer}

显示精度,意思为一小时细分为多少个单元格,默认一小时一个单元格

默认值:1

$('#test3').scheduler({accuracy: 2}); // An hour contains 2 cells

data {Object}

初始化时默认选中的单元格

默认值:[]

$('#test4').scheduler({
  data: {
    2: [0,1,2,3,4,5],
    3: [10,11,12,13],
    4: [10,11,12,13]
  }
});

footer {Boolean}

是否显示表尾

默认值:true

disabled {Boolean}

是否为禁用状态,禁用时,不能使用交互的方式来更改当前值

默认值:false

$('#test5').scheduler({
  disabled: true,
  data: {
    2: [0,1,2,3,4,5],
    3: [10,11,12,13],
    4: [10,11,12,13]
  }
});

$('#enableSel').on('click', function () {
  $('#test5').scheduler('enable');
});

$('#disableSel').on('click', function () {
  $('#test5').scheduler('disable');
});

multiple {Boolean}

单选/多选

默认值:true

以下为单选的选区,每一次选择都将原来的选区清除。

$('#test6').scheduler({ multiple: false });

onRender() {Function}

实例化完成后调用,仅执行一次。 上下文为 table。

onDragStart(selected) {Function}

拖动开始,上下文为 table。

onDragMove(selected) {Function}

拖动中,上下文为 table。

onDragEnd(selected) {Function}

拖动结束,上下文为 table。

onSelected(selected) {Function}

每次有选择有变更时都会执行,上下文为 table。

API

val(optional)

$('#test1').scheduler('val', {1: [1,2,3]}); // Setter

$('#test1').scheduler('val'); // Getter

FAQ

如何添加语言

$.fn.scheduler.locales['zh-tw'] = {
  AM: '上午',
  PM: '下午',
  TIME_TITLE: '時間',
  WEEK_TITLE: '禮拜',
  WEEK_DAYS: ['禮拜壹', '禮拜二', '禮拜三', '禮拜四', '禮拜五', '禮拜六', '禮拜日']
};
$('#test-faq-1').scheduler({locale: 'zh-tw'});
        

格式转换

插件提供了两个工具方法来提供格式转换:

var data = {1: [1,2,3]};
var str = $.fn.scheduler.util.serialize(data);
// => '011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

$.fn.scheduler.util.parse(str);
// => {1: [1,2,3]}
        

禁选项

未实现