Javascript Fullcalendar - 复制事件

ken*_*der 4 javascript jquery fullcalendar

我在我的项目中使用Fullcalendar(http://arshaw.com/fullcalendar).它通过json源获取事件.

我想让用户选择将日历上的一个事件复制到其他日期 - 我想使用拖动(嗯,这是客户端的要求).

但拖动似乎是移动事件,而不是复制 - 是否有任何方法可以获取被拖动事件的"复制"(或复制保留在原始位置),所以它看起来像复制操作?

我试图在eventDragStart回调中复制事件对象,但它不起作用.

Pet*_*ete 5

以下是我的解决方案,允许用户按住Shift键复制事件.请注意,这实际上是移动原始事件并将副本保留在原始位置.

我从这个引用开始并创建了以下内容:

//Before the fullCalendar object

    var copyKey = false;
    $(document).keydown(function (e) {
        copyKey = e.shiftKey;
    }).keyup(function () {
        copyKey = false;
    });

//then inside the fullCalendar object

    eventDragStart: function (event, jsEvent, ui, view) {
        if (!copyKey) return;
        var eClone = {
            title: event.title,
            start: event.start,
            end: event.end
        };
        $('#calendar').fullCalendar('renderEvent', eClone);
    },
Run Code Online (Sandbox Code Playgroud)

  • 希望看到这个小提琴 (2认同)

Adi*_*lik 3

尝试这个:

eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) {
    // Create an event object and copy at least the start date and the title from event
     var eventClone = {
         title:event.title,
         start: event.start,
         end: event.end
     };

     // Render new event with new event object
     $('#calendar').fullCalendar('renderEvent', eventClone);

     // Revert the changes in parent event. To move it back to original position
     revertFunc();
}
Run Code Online (Sandbox Code Playgroud)

这只是一个想法。我还没有测试过这段代码。我希望它能起作用。