【问题标题】:FullCalendar gotoDate loses drop event with multiple calendarsFullCalendar gotoDate 丢失带有多个日历的丢弃事件
【发布时间】:2015-02-05 07:50:30
【问题描述】:

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

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

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

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

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

我无法找到解决方案,因此试图为此寻求帮助。

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

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

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

this.el.empty();

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

更新 2 更改了 jsbin 链接。

更新 3 我注意到在使用 gotoDate 时,第一个日历上没有调用处理程序“documentDragStart”。

更新 4 问题出在 "var Grid = fc.Grid = RowRenderer.extend({" unbindHandlers function.

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

还没找到解决办法……

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

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

目前这似乎工作正常。

【问题讨论】:

    标签: javascript jquery fullcalendar


    【解决方案1】:

    解决了这个问题。

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

    目前这似乎工作正常。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多