我使用fullcalendar js jquery插件,这是一个伟大的插件,但我有一个小问题,你知道如何:
我有一个总是不重叠的事件列表。然后有时我需要调整一个活动的时间,把它延长1到2个小时。真正的步骤是在这里,我试图使下一个事件不是重叠,而是根据调整大小的结束事件移动。我尝试过事件重叠自定义功能,但它并不真正起作用。这两个事件之间总是有几分钟的间隔。
我明天会送你一把小提琴,告诉你我在哪里。
/编辑/创建这个代码:
http://codepen.io/cchumi/pen/pEGLXdJavascript示例:
eventOverlap: function(stillEvent, movingEvent) {
//Update MovingEvent
$('#calendar').fullCalendar('updateEvent', movingEvent);
//swap stillEvent time with movingEvent
stillEvent.end = stillEvent.end;
stillEvent.start = movingEvent.end;
//Update stillEvent
$('#calendar').fullCalendar('updateEvent', stillEvent);
//return true to allow swap.
return true;
}
自从你的帖子以来已经有一段时间了,但我认为我为你找到了一个解决方案,我正在看你的代码并理解,在事件重叠事件重叠函数被触发的那一刻,所以我只是在你的代码之前添加一个事件监听器。mouseup()来停止你的代码的触发器,直到你释放鼠标的点击。现在它工作得很好。现在你的代码看起来像这样:
eventOverlap: function(stillEvent, movingEvent) {
$('#calendar').mouseup(function() {
var movingEventEnd = moment(movingEvent.end).utc().format();
//"YYYY-MM-DDTHH:mm:ss"
var StillStart = moment(stillEvent.start).utc().format();
var StillEnd = moment(stillEvent.end).utc().format();
var duration = moment.duration(moment(StillEnd).diff(moment(StillStart)));
var hoursbaseStillEvent = duration.asHours();
console.log("Still Hours Base " + hoursbaseStillEvent);
$('#calendar').fullCalendar('updateEvent', movingEvent);
var movingEventNewEnd = moment(movingEvent.end).utc().format();
var durationMovingEvent =
moment.duration(moment(movingEventNewEnd).diff(moment(movingEventEnd)));
var hoursMovingEvent = durationMovingEvent.asHours();
console.log("hourss " + hoursMovingEvent);
stillEvent.start = moment(movingEvent.end).utc().format();
var StillEventStart = moment(stillEvent.start).utc().format();
console.log("StillEventStart " + StillEventStart);
var StillEventEnd = moment(stillEvent.end).utc().format();
var Startdate = moment(StillEventStart).utc().format();
console.log("Startdate " + moment(Startdate).utc().format());
var Enddate = moment(StillEventEnd);
var StillEventEndNew = moment(Startdate).add(hoursbaseStillEvent, 'hours');
console.log("StillEventEndNew " + moment(StillEventEndNew).utc().format());
stillEvent.end = moment(StillEventEndNew).utc().format();
$('#calendar').fullCalendar('updateEvent', stillEvent);
});
return true;
//return stillEvent.allDay && movingEvent.allDay;
},