首页 > 解决方案 > Fullcalendar - 需要事件不超过一天 - 使用 selectAllow 但 allDay 出现问题

问题描述

我正在使用 Fullcalendar 并且需要事件不超过一天。

当你选择一个小时范围时,我已经让它工作了,但它永远不会适用于 allDay 事件,因为从日期和到日期是不同的。这是我的 selectAllow 函数。我知道这并不优雅,我的 Javascript 是有限的!

function(selectInfo) { 
    var ambig = selectInfo.start._ambigTime;
    var from_date = selectInfo.start._d;
    from_date = String(from_date).substr(0, 10);
    var to_date = selectInfo.end._d;
    to_date = String(to_date).substr(0, 10);

    if (from_date != to_date)
    {
        return false;
    }
    else
    {
        return true;
    }
    var duration = moment.duration(selectInfo.end.diff(selectInfo.start));
    console.log(duration.asHours());
}

正如您从代码中看到的那样,我已经走上了基于 ambigTime 进行不同检查的路线(我假设这是否是 allDay ?)并使用持续时间,但持续时间在全天时不起作用。

非常感谢任何帮助。

标签: javascriptfullcalendarmomentjsfullcalendar-3

解决方案


实际上,您可以通过使用selectConstraint更简洁、更简单地解决这个问题。这将用户的选择限制在某个时间窗口内。通过按照以下示例指定它,它有效地将单个选择限制在选择开始的那一天:

selectConstraint: {
  start: '00:00', 
  end: '24:00', 
},

演示:http: //jsfiddle.net/9qv5xz18/


推荐阅读