gpt4 book ai didi

javascript - Fullcalendar js 事件重叠

转载 作者:行者123 更新时间:2023-11-29 21:14:10 36 4
gpt4 key购买 nike

我使用 fullcalendar js jquery 插件,这是一个很棒的插件,但我有一个小问题,你知道怎么做吗:

我有一个总是不重叠的事件列表。然后有时我需要将事件的大小调整为更长的 1 或 2 小时。真正的步骤在这里,我尝试让下一个事件不重叠,而是根据调整大小的结束事件移动。我试过使用事件重叠自定义函数,但它并没有真正起作用。两次事件之间总是有几分钟的间隔。

明天我会寄给你一把 fiddle ,告诉你我在哪里。

/编辑/只需创建此代码笔:

http://codepen.io/cchumi/pen/pEGLXd

重叠的 Javascript 示例:

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;
}

最佳答案

你的帖子已经有一段时间了,但我认为我为你找到了解决方案,我正在查看你的代码并了解到,在事件重叠的那一刻触发了 eventoverlap 函数,所以我只添加了一个事件监听器.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;
},

关于javascript - Fullcalendar js 事件重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40206283/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com