FullCalendar gotoDate 丢失多个日历的放置事件

FullCalendar gotoDate loses drop event with multiple calendars

我们正在制作一个网络应用程序,用户可以在其中创建自己的日历。他们应该能够在一个页面上创建多个日历(全部在议程日视图中)。有一些外部事件必须放在日历上才能进行约会。我们想做的一切都像一个魅力!

但是我们有 1 个问题,我们似乎无法找到解决方案。

我们有第二个(月)日历(动态创建),我们使用此日历在不同日期之间导航。当用户点击某一天时,我们使用 gotoDate 更改 FullCalendars 日期。

这就是问题所在。当我们在页面上的所有日历上使用 gotoDate 时,不可能将外部事件放在第一个日历上。将事件放在第二个或第三个日历上不会产生任何问题。

我看到的是 fullCalendar 在第 724 行(版本 2.2.6)的 fullcalendar.js 中的 renderView 函数中被破坏。在此之后,完整日历再次呈现。 当我取消对 destroy 的注释时,问题就解决了,但是当然 drop 事件会第二次(或第三次或第四次)初始化。

我无法找到解决方案,因此尝试寻求一些帮助。

查看我的代码:http://jsbin.com/pubelo/1/

我也已将此提交给 FullCalendar 问题跟踪器,但我现在正试图找到一个快速的解决方案。

更新 1 仍在研究 FullCalendar.js 代码。我注意到当我删除 destroy 函数中的第 6414 行时问题就解决了。

this.el.empty();

但是删除该行会导致双 javascript 事件。

更新 2 更改了 jsbin link.

更新 3 我注意到处理程序 'documentDragStart' 在使用 gotoDate 时不会在第一个日历上调用。

更新 4 问题出在 "var Grid = fc.Grid = RowRenderer.extend({" unbindHandlers 函数中。

因为秒日历在第一个调用 bindHandlers 的日历之后调用 unbindHandler,所以 dragstart 已被删除并且仅应用一次(对最后一个日历)。

还没有找到解决办法...

解决方法/解决方案 解决了这个问题。

我要销毁两个日历。之后,我再次初始化两个日历,并将 defaultDate 参数设置为正确的日期。

目前这似乎工作正常。

已解决该问题。

我要销毁两个日历。之后,我再次初始化两个日历,并将 defaultDate 参数设置为正确的日期。

目前这似乎工作正常。

更新 问题已由 Arshaw 修复并在最新版本 2.3.0 中发布。