Javascript 为什么可以';t eventDragStop是否不编辑回调中的事件?(完整日历v4)

Javascript 为什么可以';t eventDragStop是否不编辑回调中的事件?(完整日历v4),javascript,fullcalendar,fullcalendar-4,Javascript,Fullcalendar,Fullcalendar 4,我正在使用fullcalendar(v4 alpha)来安排活动。 我有一个eventDragStop回调,我试图使用它为事件设置extendedProp,标记事件已被更改 eventDragStop: function (info) { calendar.getEventById(info.event.id).setExtendedProp("extra2", true) } 使用上面的代码,它不起作用。如果

我正在使用fullcalendar(v4 alpha)来安排活动。
我有一个
eventDragStop
回调,我试图使用它为事件设置extendedProp,标记事件已被更改

eventDragStop: function (info) {
                        calendar.getEventById(info.event.id).setExtendedProp("extra2", true)
                }  
使用上面的代码,它不起作用。如果我
alert(info.event.id)
,我可以看到正在为已拖动的事件调用正确的id,并且没有得到任何错误

如果日历上有三个事件,ID为:1、2、3,请使用以下代码:

eventDragStop: function (info) {
                        calendar.getEventById(1).setExtendedProp("extra2", true)
                }  
因此,明确声明更改ID号1,而不是回调中的事件。
如果我拖动事件编号1,这也不起作用。但是,如果我拖动事件2或3,它将工作并更改事件1

反之亦然,如果我显式声明的任何事件不是触发
eventDragStop
回调的事件,它将能够更改该事件

有谁能告诉我这是为什么吗?

说(这本身就是一个回调)

“在修改事件信息之前触发”

所以我认为这里发生的是fullCalendar有效地覆盖了您在回调期间对事件数据所做的任何更改

我认为这是因为在回调运行后的某个时间,事件对象可能会被一个新版本(基于其最终静止位置构建)替换。
我还没有通过查看源代码来验证这一点,但这是对您看到的问题的逻辑解释,而且在拖动完成后,事件对象将得到更新(使用新的日期/时间等),这在一定程度上是有意义的,事实上,这可能涉及到当时对象数据的完全刷新

无论如何,这就是为什么在拖动事件1时,您无法持久化对事件1的其他数据的任何更新,但在拖动事件2或3时,您能够持久化对事件1的更改,因为在该实例中,由于拖动完成,事件1的数据在以后不会被替换


您不应使用
eventDragStop
,而应在
eventDrop
()期间修改事件。此回调发生在fullCalendar完全完成拖放处理并更新事件时间等之后。因此,您对我预期的事件数据所做的任何进一步更改都应保留。

表示“它是在事件信息被修改之前触发的”。所以如果我不得不猜测的话,我会说fullCalendar有效地覆盖了您在这里所做的任何更改。我认为这是因为在回调运行后的某个时间,事件对象可能会被一个新版本(基于其最终静止位置构建)替换。这可能就是为什么拖动事件1不起作用,但是拖动事件2或3能够更新事件1-因为在这种情况下,事件1不会在以后被替换。我个人会尝试在执行过程中修改事件。此回调发生在fullCalendar完全完成拖放处理并更新事件时间等之后。因此,您对我预期的事件所做的任何进一步更改都应保留。。。另外,我写这篇文章是作为评论而不是回答,因为我没有任何证据,这只是我的推论。试试看。如果有效,我很乐意将其添加为正确答案…让我知道您的进展情况。@ADyson我也在使用eventDragStop,因为我正在检查该事件是否已删除到日历之外(测试此问题时删除了temp…)。我已经将它们分为两个单独的回调,并按照您的建议使用eventDrop检查调整情况,效果非常好。我猜eventDragStop必须按照您的建议创建自己的事件实例,然后在回调后更新真实事件-覆盖任何更改。。谢谢为什么您需要知道该事件是否已被删除到日历之外?如果用户把它放在日历之外,那么什么也不会发生。你当然可以忽略它?或者,您是否将此视为该事件应被删除的迹象?无论如何,很高兴能帮助你,我会写一个答案。正确-删除日历删除事件!我的错,没有充分解释那一点。