$.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)
- 设置选中项,当传入 data 对象时,更新当前视图。
- 获取选中项,当不传入任何值时,返回当前选中的 data。
$('#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'});
格式转换
插件提供了两个工具方法来提供格式转换:
- $.fn.scheduler.util.parse(str[, accuracy])
- $.fn.scheduler.util.serialize(data[, accuracy])
var data = {1: [1,2,3]};
var str = $.fn.scheduler.util.serialize(data);
// => '011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
$.fn.scheduler.util.parse(str);
// => {1: [1,2,3]}
禁选项
未实现