【问题标题】:fullcalendar multiple calendars, how to click prev/next for all calendarsfullcalendar 多个日历,如何单击所有日历的上一个/下一个
【发布时间】:2020-11-30 17:30:12
【问题描述】:

所以我在这个项目中使用了 fullcalendar,在同一页面上有多个日历,每个日历都有自己的 prev/next/today 按钮。我想要完成的是,当单击上一个/下一个时,它将为页面上的所有日历触发,而不仅仅是它所关联的日历,如果这有意义的话。我尝试使用 jQuery 来完成此操作,因为它们具有相同的类名,下面是我尝试过的单击功能的示例,但效果并不理想。

$(".fc-next-button").click(function (i) {
        var nextBtn = $('.fc-next-button');
        //alert(nextBtn.length);
        for (var i = 0; i < nextBtn.length; i++) {
            nextBtn[i].click();
        }
    });

例如,我有五个日历,当我单击下一步时,该功能会使当前日历提前 5 周,而不是所有日历。任何帮助将不胜感激。

【问题讨论】:

  • 完整日历的哪个版本?为什么需要 5 个?
  • @ADyson 版本 3.10.2,我正在显示本周多人的日历
  • 如果您要显示多个人的日历,为什么不使用一个日历并将不同人的事件以不同的颜色进行区分。如果您愿意,您可以使用事件源来简化此操作。如果您能够这样做,您甚至可以使用调度程序功能使其更清晰。附言您是否意识到您落后于最新版本的 fullCalendar (v5) 的多个版本?
  • @ADyson 是的,我意识到我使用的是 odler 版本,我试图通过设计在这种情况下将其分开

标签: javascript jquery fullcalendar fullcalendar-scheduler fullcalendar-3


【解决方案1】:

发生这种情况是因为您的循环点击了所有“下一步”按钮。这实际上意味着您单击的任何一个都会被单击两次-一次由您手动单击,一次由代码单击。此外,click 事件会被一遍又一遍地调用,因为每次调用“click”时都会再次触发事件处理程序。

更好的方法是确定按钮属于哪个日历,然后在除该日历之外的所有日历上调用 fullCalendar 的 next 方法。像这样的:

  $(".fc-next-button").click(function () {
    var calendar = $(this).closest(".calendar");
    $(".calendar").not(calendar).fullCalendar('next');
  });

$(".calendar") 位假定您的所有日历元素都有一个共同的类属性,例如在此演示中:https://codepen.io/ADyson82/pen/OJVMPVy?editable=true&editors=001

【讨论】:

  • 谢谢!这是为我做的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多