calendar

KISSY 内置日历组件,如无必要,推荐使用gallery/calendar/1.1/日历组件。Gallery 日历组件

该组件是由拔赤设计实现,交互清爽、功能实用。支持基本的日期选择、时间选择、嵌入/弹出、范围选择、日期格式化输出等常用功能, 能够满足多数的应用场景, 非常方便用户调用。基本用法:

KISSY.use('calendar',function(S,Calendar){
    // use Calendar
});    

查看日历Demo

初始化参数说明:

new Calendar(trigger,config);

日历实例方法

toggle()

切换日历的状态, 从显示到隐藏和从隐藏到显示

render (config)

通过render可以带入如上任意参数并重新渲染日历,参数为JSON对象,和初始化的config参数用法一样,比如

KISSY.use('calendar',function(S,Calendar) {
    c = new Calendar('#J_WithTime');
    c.render({maxDate:new Date()});
});

destroy()

销毁日历

hide()

如果日历是弹出形式, 隐藏日历

show()

显示日历


日历实例的事件

select

选中一个日期事件,通过e.date来获得选中的日期,如果开启notLimited参数,则e.date=null

monthChange

切换月份事件,通过e.date来获取切换到的日期, 通过e.date.getMonth() + 1 来获得切换至的月份,用法:

KISSY.use('calendar',function(S,Calendar) {
    //月份切换事件
    new Calendar('J_AllEvents').on('switch',function(e){
        alert('切换事件,月份切换到'+(e.date.getMonth()+1));
    });
});

rangeSelect

范围选择事件,通过e.start和e.end来获得开始和结束日期,用法:

KISSY.use('calendar',function(S,Calendar) {
    //选择范围,并绑定范围回调
    new Calendar('J_Range',{
        multi_page:2,
        rangeSelect:true
    }).on('rangeselect',function(e){
        alert(e.start+' '+e.end);
    });
});

multiSelect

多选触发的事件,通过e.multi来获取选中的日期数组,用法:

KISSY.use('calendar',function(S,Calendar) {
    new Calendar('#J_Popup23', {
            popup:true,
            triggerType:['click'],
            pages:2,
            multiSelect:true,
            rangeLinkage:false
    }).on('multiSelect', function(e) {
            alert(e.multi);
    });
});

timeSelect

确定选中时间事件,通过e.date来获得日期时间

FAQ

1,如何在初始化时设置时分秒?

var c = new Calendar('#J_crontab');
var ca = c.ca[0];
if(ca){
    ca.timmer.set('h', '08');
    ca.timmer.set('m', '00');
    ca.timmer.set('s', '00');
}
Fork me on GitHub