在agendaWeek视图中,可以有一个多插槽事件,当您单击事件的底部(不调整大小)并将其拖动到一天的开始时。结果可能是开始时间位于前一天,而结束时间是正确的。或者,如果我拖到一天结束,我可能会得到相同的结果(事件跨越两天)。
我的问题是后来我想将结束时间截断到开始的同一天午夜(我有工作),但是当拖到早上开始时我希望能够将开始时间移动到00:00。那么如何确定事件被丢弃的那一天呢?
我找到了eventDragStop(event,jsEvent,ui,view),但是如何使用jsEvent ClientX和ClientY来确定当天?或者用其他方法确定鼠标掉落的那一天?
答案 0 :(得分:0)
在eventDragStop中可以使用jsEvent.clientX来获取X鼠标指针的坐标位置。
然后在eventDrop中可以将drag stop clientX位置与事件的开始日列右边界位置进行比较。像这样获得正确的边框:
let x = document.querySelector(`[data-date="${event.start.format('YYYY-MM-DD')}"]`)
if(x) {
let element = x.attributes['data-date'].ownerElement;
let columnRight = element.offsetLeft + element.offsetWidth;
然后将columnRight与clientX位置进行比较。如果clientX> columnRight然后确定第二天鼠标掉落到event.start日,然后如果需要可以将事件开始更改为00:00hrs。
注意:在fullCalendar上移动事件时,鼠标指针并不总是与拖放时的事件在同一天,您可以将事件移动到左侧,并且事件将捕捉到新的一天鼠标将在第二天例如快照使鼠标指针与事件不同步。如果在这种情况下将clientX与eventDrop一起使用,则需要考虑这一点。