我们正在制作一个网络应用程序,用户可以在其中创建自己的日历。他们应该能够在一个页面上创建多个日历(全部在议程日 View 中)。有一些外部事件必须放在日历上才能进行约会。我们想做的一切都像一个魅力!
但我们有 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 链接。
更新 3 我注意到在使用 gotoDate 时,处理程序“documentDragStart”不会在第一个日历上调用。
更新 4 问题出在“var Grid = fc.Grid = RowRenderer.extend({” unbindHandlers 函数中。
因为秒日历在第一个调用 bindHandlers 的日历之后调用 unbindHandler,所以 dragstart 已被删除并且仅应用一次(对最后一个日历)。
还没有找到解决办法...
解决方法/解决方案 已解决该问题。
我正在销毁两个日历。之后,我将 defaultDate 参数设置为正确的日期,再次初始化这两个日历。
目前这似乎工作正常。
最佳答案
已解决该问题。
我正在销毁两个日历。之后,我将 defaultDate 参数设置为正确的日期,再次初始化这两个日历。
目前这似乎工作正常。
更新 问题已由 Arshaw 修复并在最新版本 2.3.0 中发布。
关于javascript - FullCalendar gotoDate 丢失多个日历的放置事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28338748/