如何使用FullCalendar中的外部元素获取drop和eventDrop的结束时间?

时间:2015-11-16 23:17:52

标签: javascript jquery fullcalendar

我只想知道如何获得结束时间,因为我是console.log(事件)然后结束时间为空,所以每当我放弃任何时候它应该返回一些结束时间星期日活动。

那么如何获得外部元素丢弃的结束时间,甚至当从一列移动到另一列时将调用eventDrop,那时我也想要结束时间。

如果可能的话,请不要编辑我的小提琴并创建新的小提琴并将其发送给我,这样我就可以看看,因为我昨天花了很多时间来找出它但却找不到任何工作解决方案。

提前谢谢,这是链接:

jsfiddle.net/jimil/8hqe3wxd/3/

1 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/dg9gp3e3/3/

如果外部事件没有event data associated,则会使用defaultTimedEventDurationdefaultAllDayEventDuration。在您的小提琴中,正在使用defaultTimedEventDuration,因为事件的allDay未设置为true。您可以通过

获取默认值
var defaultDuration = $('#calendar').fullCalendar('option', 'defaultTimedEventDuration');
defaultDuration = moment.duration(defaultDuration); // to add to date need to convert to a moment duration

eventDrop

的示例
        eventDrop: function(event, delta, revertFunc) {
            //inner column movement drop so get start and call the ajax function......
            console.log(event.start.format());
            console.log(event.id);
            var defaultDuration = moment.duration($('#calendar').fullCalendar('option', 'defaultTimedEventDuration')); // get the default and convert it to proper type
            var end = event.end || event.start.clone().add(defaultDuration); // If there is no end, compute it
            console.log('end is ' + end.format());

            //alert(event.title + " was dropped on " + event.start.format());

        },

对于丢弃事件:

drop: function(date) {

            //Call when you drop any red/green/blue class to the week table.....first time runs only.....
            console.log("dropped");
            console.log(date.format());
            console.log(this.id);
            var defaultDuration = moment.duration($('#calendar').fullCalendar('option', 'defaultTimedEventDuration'));
            var end = date.clone().add(defaultDuration); // on drop we only have date given to us
            console.log('end is ' + end.format());
        }

另一种选择是使用forceEventDuration选项,如果没有指定,将导致结束日期设置。