Fullcalendar - 大日期不应该在较小的日期后面拖拽

时间:2013-12-05 10:07:15

标签: javascript jquery fullcalendar

我的日期如下:

开始日期:2013-12-04

结束日期:2013-12-06

现在我想设置一个限制,即在较大的日期之后不应该拖动较小的日期,并且不应该在较小的日期之前拖动较大的日期。

这可以实现吗?

到目前为止,这是我的代码:

$(document).ready(function() {

        $('#calendar').fullCalendar({

            editable: true,

            events: "json-data.php",

            eventDrop: function(event, delta) {
                alert(event.title + ' was moved ' + delta + ' days\n' +
                    '(Dragged)');
            },

            loading: function(bool) {
                if (bool) $('#loading').show();
                else $('#loading').hide();
            }

        });

    });

2 个答案:

答案 0 :(得分:1)

documentation on eventDrop所示:eventDrop回调在其参数中接收revertFunc函数,该函数在被调用时会将事件恢复回原始位置。

以下是您如何撰写eventDrop回调的概述:

eventDrop : function(event,dayDelta,minuteDelta,allDay,revertFunc) {
    var smaller = /* get date of (moved) smaller event */,
        bigger = /* get date of (moved) bigger event */;
    if ( smaller > bigger ) {
        alert('smaller should stay before bigger');
        revertFunc();
    }
}

答案 1 :(得分:1)

您可以使用'revertFunc'(文档here

eventDrop

中加入这样的内容
if (initialDate.getTime()>finalDate.getTime()) {revertFunc();}

getTime是获取自1970年以来经过的毫秒数(用于比较两个日期) 并且initialDatefinalDate我指的是初始(拖动开始)和最终(拖动结束)Date实例。在这种情况下,您可以通过

替换初始/最终检查

if (dayDelta<0)

dayDelta已在fullcalendar

中预定义