我们正在制作一个用户可以创建自己的日历的Web应用程序。他们应该能够在一个页面上创建多个日历(所有在视图agendaDay中)。必须在日历上删除外部事件才能进行约会。我们想做的一切都像魅力一样!
但是我们有一个问题,我们似乎无法为它找到解决方案。
我们有第二个(月份)日历(动态创建),我们正在使用此日历在几天之间导航。当用户点击一天时,我们使用gotoDate来更改FullCalendars日。
这就是问题所在。当我们在页面上的所有日历上使用gotoDate时,不可能在第一个日历上删除外部事件。删除第二或第三个日历上的事件并没有给出任何问题。
我所看到的是fullCalendar在第724行(版本2.2.6)的fullcalendar.js中的renderView函数中被销毁。在此之后,fullcalendar再次呈现。 当我解除破坏时,问题就解决了,但是当然,丢弃事件会被初始化为第二次(或第三次,或第四次)。
我无法找到解决方案,所以试图为此找到一些帮助。
请参阅我的代码:http://jsbin.com/pubelo/1/
我还将此提交给FullCalendar问题跟踪器,但我现在正试图找到一个快速解决方案。
更新1 仍在查看FullCalendar.js代码。我注意到当我在destroy函数中删除第6414行时,问题就解决了。
this.el.empty();
但删除该行会导致双重javascript事件。
更新2 更改了jsbin链接。
更新3 我注意到处理程序' documentDragStart'使用gotoDate时,在第一个日历上没有调用。
更新4 问题变成" var Grid = fc.Grid = RowRenderer.extend({" unbindHandlers function。
因为秒日历在第一个名为bindHandlers的日历之后调用unbindHandler,所以dragstart已被删除并且仅应用一次(到最后一个日历)。
Haven没有找到解决方案......
变通方法/解决方案 找到解决问题的方法。
我正在销毁这两个日历。之后,我再次初始化两个日历,并将defaultDate参数设置为正确的日期。
现在这似乎工作正常。
答案 0 :(得分:1)
找到解决问题的方法。
我正在销毁这两个日历。之后,我再次初始化两个日历,并将defaultDate参数设置为正确的日期。
现在这似乎工作正常。
<强>更新强> 问题已由Arshaw修复并在最新版本2.3.0中发布。